【发布时间】:2015-07-13 10:05:53
【问题描述】:
在遗留代码中,我解决了嵌套事务的问题。 (Spring、CDI等不能只用纯JPA(EclipseLink))
em.getTransaction().begin();
em.persist(client);
em2.getTransaction().begin();
em2.persist(client1); //saved into DB
em2.getTransaction().commit();
em.getTransaction().rollback();
public void method(){
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
em.persist(client);
nestedTransactionMethod();
em.getTransaction().rollback();
}
public void nestedTransactionMethod(){
EntityManager em = entityManagerFactory.createEntityManager();
em.getTransaction().begin();
em.persist(client);
em.getTransaction().commit();
}
问题是当我在打开事务的内部方法调用另一个具有自我事务的方法时,它的行为不是原子的。是否有任何解决方案如何在不提供开放实体管理器作为参数的情况下实现这一目标?
【问题讨论】:
标签: java jakarta-ee jpa transactions eclipselink