こんにちは私はGoogleAppEngineSDK1.7.3とJPAforDatanucleusを使用しています。変数にあるオブジェクトを更新できませんt
。
この質問に対する受け入れられた回答に示されているように、コードを記述しました。
コードを使用する場合:
PersistenceManager persistenceManager=JDOHelper.getPersistenceManager(t);
persistenceManager.refresh(t);
return t;
私は得る:
java.lang.UnsupportedOperationException: Method not supported with JPA
at org.datanucleus.api.jpa.JPAPersistenceManager.refresh(JPAPersistenceManager.java:693)
at com.appspot.diasporajava.dao.GenericDaoImpl.update(GenericDaoImpl.java:74)
コードを使用する場合:
return this.emf.createEntityManager().merge(t);
ここで、emfはEntityManagerFactoryです。
私は得る:
javax.persistence.PersistenceException: Object with id "com.appspot.diasporajava.entities.Post@447cc9c9" is managed by a different Object Manager
at org.datanucleus.api.jpa.NucleusJPAHelper.getJPAExceptionForNucleusException(NucleusJPAHelper.java:302)
at org.datanucleus.api.jpa.JPAEntityManager.merge(JPAEntityManager.java:576)
at com.appspot.diasporajava.dao.GenericDaoImpl.update(GenericDaoImpl.java:76)
永続性マネージャーを常に開いておく必要がありますか?
オブジェクトの作成に使用するocdeは次のとおりです。
@Override
@Transactional
public T create(final T t) {
EntityManager em = this.emf.createEntityManager();
em.persist(t);
em.close();
return t;
}