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.

Reply via email to