I tilfælde af at du ikke bruger containerstyrede transaktioner så skal du også tilføje transaktionspolitikken:
@Stateful
@TransactionManagement(value=TransactionManagementType.CONTAINER)
@TransactionAttribute(value=REQUIRED)
Jeg har kun set dette fænomen i to situationer:
Datakilde kører i auto-commit-tilstand, og derfor udføres hver sætning i en separat transaktion EntityManager
var ikke konfigureret med@Transactional
, men så kan kun forespørgsler køres, da enhver DML-handling ville ende med at give en transaktionskrævet undtagelse.
Lad os opsummere, at du har indstillet følgende Dvale-egenskaber:
hibernate.current_session_context_class=JTA
transaction.factory_class=org.hibernate.transaction.JTATransactionFactory
jta.UserTransaction=java:comp/UserTransaction
Hvor den endelige egenskab skal indstilles med din Application Server UserTransaction JNDI-navngivningsnøgle.
Du kan også bruge:
hibernate.transaction.manager_lookup_class=org.hibernate.transaction.JBossTransactionManagerLookup
eller en anden strategi i henhold til din nuværende Java EE Application Server.