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



Reply via email to