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()は返されませんでした)。例外はスローされません。ただし、オブジェクトはデータベースから削除されます。
アプリケーションの他のどの時点でも、そのような問題はありません。