Следующий фрагмент кода находится в основном
Код: Выделить всё
try(EntityManager em = entityManagerFactory.createEntityManager()) {
TestEntity e = new TestEntity();
UserTransaction tx = com.arjuna.ats.jta.UserTransaction.userTransaction();
tx.begin();
em.persist(e);
tx.rollback();
}
Ожидается откат, но данный e сохраняется в базе данных. Сохранение работает, вероятно, из-за моей конфигурации в файле persistence.xml
Тип транзакции для единицы персистентности — RESOURCE_LOCAL, что означает, что транзакция управляется локально без участия DataSource и поиск jndi. Но таким образом инициализированный UserTransaction нарайны, похоже, не знает о соединении с базой данных, поэтому не знает транзакцию, контролируемую EntityManager
Вопрос: но
в чем причина неудачного отката?
Подробнее здесь:
https://stackoverflow.com/questions/785 ... one-jpahib