GAE + JPA:交易不适用于生产

时间:2013-04-19 12:07:03

标签: java google-app-engine jpa google-cloud-datastore

我在这里很奇怪。我在数据存储区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();
    }
}

log只显示:

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的限制。

0 个答案:

没有答案