【发布时间】:2016-06-03 11:41:12
【问题描述】:
我只是想清除我的实体管理器的持久性上下文以重新加载数据库中的所有数据,特别是在该方法中:
public MyEntity find(Object id) {
EntityManager em = getEntityManager();
EntityTransaction tx = em.getTransaction();
tx.begin();
em.flush();
tx.commit();
em.clear();
return em.find(MyEntity .class, id);
}
但似乎flush() 无法正常工作,因为当我插入OtherEntity 并执行该方法时,我没有通过getCollection() 方法在持久性上下文中找到它(仅在重新启动我的应用程序后)..
【问题讨论】:
-
em.flush 在提交之前完全没有意义......提交会刷新。您的交易没有在其中执行任何操作,因此这也是完全没有意义的。因此,如果您想调试问题,请查看日志。我在您发布的代码中看不到 getCollection(无论 getCollection 是什么)
标签: java jpa eclipselink