我在使用JPA(使用EclipseLink 4.2.1)时遇到了一个奇怪的问题。
代码的相关部分:
l.debug("creating EM");
em = factory.createEntityManager();
int id = Integer.parseInt(idString);
l.debug("parsed");
em.getTransaction().begin();
SomeClass g = em.find(SomeClass.class, id);
l.debug("found");
em.remove(g);
l.debug("removed");
em.getTransaction().commit();
l.debug("Returning...");
输出结果为:
DEBUG - creating EM
DEBUG - parsed
DEBUG - found
DEBUG - removed
如您所见,最后一行未显示(commit()未返回)。它不会抛出任何异常。但是,该对象将从数据库中删除。
在应用程序的任何其他方面都没有这样的问题。
答案 0 :(得分:1)
通常,挂起事务的根本原因可能是与其他并发事务的死锁