Если вы используете контейнер, управляемый EntityManager
, то вы используете транзакции JTA. Следовательно, вам не нужно (точнее - вы не можете) вмешиваться в транзакции EntityManager
, полученные с помощью entityManager.getTransaction()
. JTA запускает и фиксирует вашу транзакцию.
Если вы используете приложение, управляемое EntityManager
, и не хотите участвовать в транзакции JTA, вам нужно управлять ими самостоятельно (это называется администратором сущностей с локальным ресурсом).
Обычно управляемое приложением EntityManager
, которое работает с EntityManager.getTransaction()
, используется в среде Java SE.
РЕДАКТИРОВАТЬ: Возможно, вас заинтересует раздел 7.5 Управление транзакциями из спецификации JPA 2.0 .