В устаревшем коде я решаю проблему с вложенными транзакциями. (весна, CDI, и т.д., не может быть использована только чистым JPA (EclipseLink))EntityManager вложенная транзакция атомарности
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();
}
проблема, когда я называю внутри метода, в котором открыт транзакции другого метода с самостоятельной сделкой, чем себя не атомарными. Есть ли какое-либо решение, как достичь этого, не предоставляя открытым менеджером сущностей в качестве параметра?