EclipseLink JPA Transaction.commit()不返回

时间:2012-11-08 18:02:01

标签: java jpa persistence jpa-2.0 eclipselink

我在使用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()未返回)。它不会抛出任何异常。但是,该对象将从数据库中删除。

在应用程序的任何其他方面都没有这样的问题。

1 个答案:

答案 0 :(得分:1)

通常,挂起事务的根本原因可能是与其他并发事务的死锁