google app engineのJDOをさわっているけどdetach周りの挙動がよくわからん。
ClassNotDetachableExceptionが発生したりする。
The class "study.model.Oya" is not Detachable. This means that the MetaData for the class did not have the "detachable" attribute set to true. org.datanucleus.exceptions.ClassNotDetachableException: The class "study.model.Oya" is not Detachable. This means that the MetaData for the class did not have the "detachable" attribute set to true. at org.datanucleus.ObjectManagerImpl.assertDetachable(ObjectManagerImpl.java:3847) at org.datanucleus.ObjectManagerImpl.detachObject(ObjectManagerImpl.java:1765) at org.datanucleus.store.fieldmanager.DetachFieldManager.processPersistable(DetachFieldManager.java:89) at org.datanucleus.store.fieldmanager.DetachFieldManager.internalFetchObjectField(DetachFieldManager.java:118) at org.datanucleus.store.fieldmanager.AbstractFetchFieldManager.fetchObjectField(AbstractFetchFieldManager.java:104) at org.datanucleus.state.JDOStateManagerImpl.detach(JDOStateManagerImpl.java:3469) at org.datanucleus.ObjectManagerImpl.performDetachOnClose(ObjectManagerImpl.java:3263) at org.datanucleus.ObjectManagerImpl.close(ObjectManagerImpl.java:767) at org.datanucleus.jdo.JDOPersistenceManager.close(JDOPersistenceManager.java:270)
@PersistenceCapable(identityType = IdentityType.APPLICATION, detachable="true") public class Oya {
するか
jdoconfig.xmlに下記を記載すればOK? 上下は同じこと指してるの?
<property name="datanucleus.DetachOnClose" value="false"/>
それとも
Persistent.createManager().detachCopyAll()使えってこと??
このあたりの情報がWebでうまいこと見つけられない・・・。
どこにあるんだろう。書籍も探してみるか。JDO本を探せばいいのかな。