Одна из ситуаций, в которой это может произойти, - это когда код находится в EJB / MDB с использованием транзакций, управляемых контейнером (CMT), либо намеренно, либо потому, что он используется по умолчанию. Чтобы использовать транзакции, управляемые компонентом, добавьте следующую аннотацию:
@ TransactionManagement (TransactionManagementType.BEAN)
Это нечто большее, но это начало истории.