btw it's useless to use proxy='true' in reference-descriptor when you have proxy='dynamic' in the referenced class.
jakob
Janet Song wrote:
Hi,
Thanks. Got that problem solved. It works fine when i map a compound primary key from one table to another with a single primary key. However when i map compound primary keys to compound primary keys, i get a NullPointerException which results from [org.apache.ojb.broker.accesslayer.IndirectionHandler] ERROR: Met.....
e.g Table A: <class-descriptor class = "com.data.A" proxy="dynamic" table = "Shipment"> <field-descriptor id = "1" name = "shipmentOid" column = "SHIPMENT_OID" jdbc-type ="INTEGER" primarykey = "true" /> <field-descriptor id = "2" name = "countryCode" column = "REF_COUNTRY_CD" jdbc-type ="VARCHAR" primarykey = "true" /> ....
<reference-descriptor name="piece" class-ref="com.data.B" proxy="true"> <foreignkey field-id-ref="1"/> <foreignkey field-id-ref="2"/> </reference-descriptor> </class-descriptor>
Table B:
<class-descriptor class = "com.data.B" proxy="dynamic" table = "Piece"> <field-descriptor id = "1" name = "shipmentOidPiece" column = "SHIPMENT_OID" jdbc-type ="INTEGER" primarykey = "true" /> <field-descriptor id = "2" name = "typeFlg" column = "TYPE_FLG" jdbc-type ="VARCHAR" primarykey = "true" />
<reference-descriptor name="piece" class-ref="com.data.A" proxy="true"> <foreignkey field-id-ref="1"/> <foreignkey field-id-ref="2"/> </reference-descriptor> </class-descriptor>
[DEFAULT] WARN: OJB broker could not materialize com.fedex.data.CorePieceCounterImpl{188119,JP} [org.apache.ojb.broker.accesslayer.IndirectionHandler] ERROR: Method invoking failed for method *getSubmitFlag* on object null null java.lang.NullPointerException at org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(Unknown Source) at $Proxy1.getSubmitFlag(Unknown Source) at TestClient.testEqualCriteriaOneToOne(TestClient.java:104) at TestClient.runApp(TestClient.java:78) at TestClient.main(TestClient.java:71) Exception in thread "main" java.lang.NullPointerException at org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(Unknown Source) at $Proxy1.getSubmitFlag(Unknown Source) at TestClient.testEqualCriteriaOneToOne(TestClient.java:104) at TestClient.runApp(TestClient.java:78) at TestClient.main(TestClient.java:71) rethrown as org.apache.ojb.broker.PersistenceBrokerException: Error invoking:getSubmitFlag at org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(Unknown Source) at $Proxy1.getSubmitFlag(Unknown Source) at TestClient.testEqualCriteriaOneToOne(TestClient.java:104) at TestClient.runApp(TestClient.java:78) at TestClient.main(TestClient.java:71) Caused by: java.lang.NullPointerException ... 5 more
Any help on this is appreciated. Thanks
regards.
Janet
----- Original Message ----- From: "Jakob Braeuchi" <[EMAIL PROTECTED]> To: "OJB Developers List" <[EMAIL PROTECTED]> Sent: Saturday, March 29, 2003 01:15 Subject: Re: ArrayIndexOutOfBoundsException when using composite primary keys
hi janet,Could
imo this problem is coming from a reference-descriptor not matching the number of pk fields in the referenced object:
<class-descriptor class="brj.ojb.Person" table="tabPerson" > <field-descriptor id="1" name="id" column="id" jdbc-type="INTEGER" primarykey="true" <<<< pk1 autoincrement="true" conversion="brj.ojb.TestFieldConversion" /> <field-descriptor id="2" name="vorname" column="vorname" jdbc-type="VARCHAR" /> <field-descriptor id="3" name="name" column="name" jdbc-type="VARCHAR" primarykey="true" <<<< pk2 /> ... <reference-descriptor name="partner" class-ref="brj.ojb.Person" proxy="true" > <foreignkey field-ref="idPartner"/> <<<< one fk ('name') is missing </reference-descriptor>
hth jakob
Janet Song wrote:
Hi,
When i map compound or composite primary keys, i get an ArrayOutOfBoundsException. Single primary key is fine. Appreciate it if someone could shed some light on this problem. Thanks!
[org.apache.ojb.broker.accesslayer.JdbcAccessImpl] ERROR:
PersistenceBrokerException during the execution of materializeObject:
knot generate primary key values for given Identityorg.apache.ojb.broker.accesslayer.JdbcAccessImpl.materializeObject(Unknown
com.fedex.data.CorePieceCounterImpl{188119}, exception was
java.lang.ArrayIndexOutOfBoundsException: 1: 1
Could not generate primary key values for given Identity
com.fedex.data.CorePieceCounterImpl{188119}, exception was
java.lang.ArrayIndexOutOfBoundsException: 1: 1
java.lang.ArrayIndexOutOfBoundsException: 1
at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(Unknown
Source)
at org.apache.ojb.broker.util.BrokerHelper.getKeyValues(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.StatementManager.getKeyValues(Unknown
Source)
at
org.apache.ojb.broker.accesslayer.StatementManager.bindSelect(Unknown
Source)
at
Source)org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getObjectByIdentity(Un
at
org.apache.ojb.broker.singlevm.PersistenceBrokerImpl.getDBObject(Unknown
Source)
at
inown Source)org.apache.ojb.broker.singlevm.DelegatingPersistenceBroker.getObjectByIdent
at
nty(Unknown Source)org.apache.ojb.broker.accesslayer.IndirectionHandler.materializeSubject(Unk
at
Source)own Source)org.apache.ojb.broker.accesslayer.IndirectionHandler.getRealSubject(Unknown
at
Source)
at
org.apache.ojb.broker.accesslayer.IndirectionHandler.invoke(Unknown
at $Proxy1.getSubmitFlag(Unknown Source) at TestClient.testEqualCriteriaOneToOne(TestClient.java:104)
regards,
Janet
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]