2
您好我正在使用Google App Engine SDK 1.7.3和JPA Datanucleus。 我無法更新變量t
中的對象。Appengine JPA更新
我寫了我的代碼,如this question的接受答案中所示。
如果我使用的代碼:
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 "[email protected]" 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;
}