Hello,
I have the following problem: I have an 1:1-aggregation between an
Address-object and a corresponding ZIPCode-Object. I don't want to
map addresses and zipcodes to different DB tables but store the zipcode
as a column in the address-table.
The problem is, when I want to store an Address-Object containing an
instance of ZIPCode by calling broker.store(address), I get the following
error:
java.lang.NoSuchFieldException: m_userRsetType
at java.lang.Class.getField0(Class.java:1735)
at java.lang.Class.getDeclaredField(Class.java:1189)
at
org.apache.ojb.broker.platforms.PlatformOracleImpl.changePreparedStatementRe
sultSetType(Unknown Source)
at
org.apache.ojb.broker.platforms.PlatformOracleImpl.setObjectForStatement(Unk
nown Source)
at
org.apache.ojb.broker.accesslayer.StatementManager.bindInsert(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.JdbcAccess.executeInsert(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollectionObject(U
nknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollections(Unknow
n Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at test.MainAppl.insertData(MainAppl.java:172)
at test.MainAppl.main(MainAppl.java:46)
[org.apache.ojb.broker.accesslayer.JdbcAccess] ERROR:
PersistenceBrokerException during the execution of materializeObject: Not in
GZIP format
Not in GZIP format
java.io.IOException: Not in GZIP format
at
java.util.zip.GZIPInputStream.readHeader(GZIPInputStream.java:131)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:58)
at java.util.zip.GZIPInputStream.<init>(GZIPInputStream.java:68)
at
org.apache.ojb.broker.accesslayer.conversions.Object2ByteArrFieldConversion.
sqlToJava(Unknown Source)
at
org.apache.ojb.broker.accesslayer.RowReaderDefaultImpl.readObjectArrayFrom(U
nknown Source)
at
org.apache.ojb.broker.accesslayer.JdbcAccess.materializeObject(Unknown
Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollectionObject(U
nknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.storeCollections(Unknow
n Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.store(Unknown Source)
at test.MainAppl.insertData(MainAppl.java:172)
at test.MainAppl.main(MainAppl.java:46)
What am I doing wrong (in the mapping)? I also tried VARCHAR and LONGVARCHAR
as JDBC-column-types,
but nothing works the way I think it should work. I also tried to use
JAVA_OBJECT as JDBC-columntype,
but it didn't work either. It worked when I simply chose an int as zipcode
and not a Java class.
Thanx for your help,
Jan Geiger
Below is the sourcecode and the mapping-info I used:
// ZIPCode class
public class ZIPCode implements java.io.Serializable {
int code;
String additionalField;
public ZIPCode (int pCode, String pAdditionalField) {
this.setCode(pCode);
this.setAdditionalField(pAdditionalField);
}
public String getAdditionalField() {
return additionalField;
}
public int getCode() {
return code;
}
public void setAdditionalField(String additionalField) {
this.additionalField = additionalField;
}
public void setCode(int code) {
this.code = code;
}
}
// extract from Address class
public class Address {
...
private ZIPCode zipCode;
...
public ZIPCode getZipCode() {
return zipCode;
}
public void setZipCode(ZIPCode zipCode) {
this.zipCode = zipCode;
}
// extract from the class-descriptor of Address
<class-descriptor
class="test.Address"
table="TADDRESS">
...
<field-descriptor id="5"
name="zipCode"
column="ZIPCODE"
jdbc-type="LONGVARBINARY"
conversion="org.apache.ojb.broker.accesslayer.conversions.Object2ByteArrFiel
dConversion"
/>
</class-descriptor>
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>