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
>
>
>
|