Rick Curtis wrote:
>
> Tim -
>
> Can you post your Entity and the full exception stack?
>
Hello Rick,
thank you for your fast response.
I went through my code once again and I think I've found the problem,
it seems to be the FetchType of such an PersistentCollection.
When I annotate such a List<String> with
@PersistentCollection(fetch=FetchType.EAGER)
I get the following Exception thrown:
Exception in thread "main" <openjpa-1.2.2-r422266:898935 nonfatal general
error> org.apache.openjpa.persistence.PersistenceException: java.lang.String
incompatible with org.apache.openjpa.enhance.PersistenceCapable
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:894)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:793)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:986)
at
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:278)
at
org.apache.openjpa.jdbc.sql.SelectImpl$SelectResult.load(SelectImpl.java:2413)
at
org.apache.openjpa.jdbc.sql.AbstractResult.load(AbstractResult.java:272)
at
org.apache.openjpa.jdbc.kernel.InstanceResultObjectProvider.getResultObject(InstanceResultObjectProvider.java:59)
at
org.apache.openjpa.lib.rop.EagerResultList.<init>(EagerResultList.java:36)
at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1228)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:990)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:805)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:775)
at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:771)
at
org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:517)
at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:255)
at
org.apache.openjpa.persistence.QueryImpl.getResultList(QueryImpl.java:294)
at testing.Test.main(Test.java:55)
Caused by: java.lang.ClassCastException: java.lang.String incompatible with
org.apache.openjpa.enhance.PersistenceCapable
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.setInverseRelation(JDBCStoreManager.java:408)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initializeState(JDBCStoreManager.java:380)
at
org.apache.openjpa.jdbc.kernel.JDBCStoreManager.initialize(JDBCStoreManager.java:278)
at
org.apache.openjpa.kernel.DelegatingStoreManager.initialize(DelegatingStoreManager.java:111)
at
org.apache.openjpa.kernel.ROPStoreManager.initialize(ROPStoreManager.java:57)
at org.apache.openjpa.kernel.BrokerImpl.initialize(BrokerImpl.java:913)
at org.apache.openjpa.kernel.BrokerImpl.find(BrokerImpl.java:871)
... 16 more
But if I use @PersistentCollection(fetch=FetchType.LAZY) or only
@PersistentCollection,
everything works fine.
Does this mean that such a PersistentCollection only can be loaded "lazy" in
OpenJPA 1.x?
Or is there any way to load such a List "eager"?
Thank you!
Kind regards,
Tim
--
View this message in context:
http://openjpa.208410.n2.nabble.com/OpenJPA-1-2-2-Persisting-Retrieving-List-String-or-other-Java-build-in-types-using-PersistentCollectn-tp6354895p6356104.html
Sent from the OpenJPA Users mailing list archive at Nabble.com.