我尝试使用JPA在谷歌应用引擎数据存储区中存储数据,但我遇到了一些麻烦。
我的代码:
try {
for (int i = 1; i <= 10; i++) {
Employee emp = new Employee();
emp.setFirstName("John" + i);
emp.setLastName("Doe" + i);
emp.setAge(i);
em.persist(emp);
em.refresh(emp);
}
em.flush();
} catch (Exception e) {
e.printStackTrace();
} finally {
em.close();
}
当我启动它时,会存储数据,但会发生2个错误:
javax.persistence.TransactionRequiredException:此操作需要事务但尚未激活 - &gt; line em.flush();
和
显示java.lang.NullPointerException at org.datanucleus.ObjectManagerImpl.flushInternalWithOrdering(ObjectManagerImpl.java:3887) - &gt; line em.close();
任何人都知道如何修复它们?
感谢。
答案 0 :(得分:0)
尝试:
em.getTransaction().begin();
//do all your persist logic
em.getTransaction().commit();
更多信息:https://developers.google.com/appengine/docs/java/datastore/transactions