Hi, You are using <openjpa-1.1.0-r422266:657916> i.e. it includes latest SVN commit 657916. With this version the derived identity will only work at a single level i.e. X --< Y. To make it work at multiple level you must use a OpenJPA build that includes revision 678518 (OPENJPA-207) that is a nightly build after July 21.
Gopalakrishnan U wrote: > > Hi Pinaki, > > That was valuable information, Thanks! > > I tried to implement identifying relations with three entities X, Y and > Z having a relation > X --< Y --< Z ( --< = Identifying relation in craw feet notation). But > persisting of Z is failing > with the following exception: > > <openjpa-1.1.0-r422266:657916 nonfatal general error> > org.apache.openjpa.persistence.PersistenceException: > org.apache.openjpa.util.ObjectId > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2459) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2359) > at > org.apache.openjpa.kernel.BrokerImpl.persistAll(BrokerImpl.java:2305) > at > org.apache.openjpa.kernel.SingleFieldManager.persist(SingleFieldManager.java:266) > at > org.apache.openjpa.kernel.StateManagerImpl.cascadePersist(StateManagerImpl.java:2884) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2454) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2359) > at > org.apache.openjpa.kernel.BrokerImpl.persistAll(BrokerImpl.java:2305) > at > org.apache.openjpa.kernel.SingleFieldManager.persist(SingleFieldManager.java:266) > at > org.apache.openjpa.kernel.StateManagerImpl.cascadePersist(StateManagerImpl.java:2884) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2454) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2277) > at > org.apache.openjpa.kernel.DelegatingBroker.persist(DelegatingBroker.java:1021) > at > org.apache.openjpa.persistence.EntityManagerImpl.persist(EntityManagerImpl.java:645) > at jpatest.TestXYZ.setup(TestXYZ.java:63) > .... > Caused by: java.lang.ClassCastException: org.apache.openjpa.util.ObjectId > at jpatest.Z.pcCopyKeyFieldsToObjectId(Z.java) > at > org.apache.openjpa.util.ApplicationIds.create(ApplicationIds.java:403) > at org.apache.openjpa.kernel.BrokerImpl.persist(BrokerImpl.java:2430) > ... 38 more > > Any clue what I could be doing wrong, or is this an OpenJPA problem? > > An eclipse project containing X,Y,Z, a test case and necessary build > scripts is attached. > > Thanks > Gopal > > Pinaki Poddar wrote: >> Hi, >> >>> Does OpenJPA support identifying relationship (a.k.a compound identity >>> relations) between two entities? >>> >> >> Yes. OpenJPA supports relation as identity. JPA 2.0 will standardize on >> this >> feature as 'derived identity'. This feature is described and demonstrated >> in >> OpenJPA manual [1]. A JIRA issue where multi-level derived identity is >> being >> used can be found here [2]. >> >> [1] >> http://openjpa.apache.org/docs/latest/manual/manual.html#ref_guide_pc_oid_entitypk >> [2] http://issues.apache.org/jira/browse/OPENJPA-207 >> >> >> > > > -- View this message in context: http://n2.nabble.com/support-for-identifying-relations-in-JPA-OpenJPA-tp660963p661898.html Sent from the OpenJPA Users mailing list archive at Nabble.com.
