我在这里遇到了奇怪的事情。我在数据存储区 Google App Engine 中将 JPA 用于 CRUD 流程。我使用事务来编辑和删除某些实体,但它在我的开发机器上运行良好,但它在生产中不起作用,甚至在我的生产日志中没有显示任何错误。这是我的一段代码:
public boolean removeBalance(long id) {
EntityManager em = EMFService.get().createEntityManager();
try {
Balance balance = em.find(Balance.class, id);
if (balance!= null) {
em.getTransaction().begin();
em.remove(balance);
List<Balance> listBalance=listBalance(balance.getUrut());
for(int i=0;i<listBalance.size();i++){
//update some entity
}
em.getTransaction().commit();
return true;
} else {
return false;
}
} catch (Exception e) {
em.getTransaction().rollback();
e.printStackTrace();
return false;
} finally {
em.close();
}
}
日志只显示:
2013-04-19 23:33:56.980 (link here) 200 259ms 20kb Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31
139.0.82.222 - - [19/Apr/2013:09:33:56 -0700] "POST
我在我的代码中犯了错误吗?
更新 :
如果它在事务中更新超过 5 条记录,它就无法正常工作,感谢@DataNucleus 通知我这是来自 Google App Engine 的限制。