Package org.hibernate.resource.transaction
Defines the resource-level transaction capabilities of Hibernate, which revolves around the
TransactionCoordinator
contract.
TransactionCoordinator instances can be obtained from
TransactionCoordinatorBuilder
, which is a Service
and available from the StandardServiceRegistry
A few terms/concepts to keep in mind here...
Local transaction
The local transaction is the idea of transactionality exposed to the application (asTransaction
) as a means to control the underlying transaction. That
control flows from the Transaction
into the TransactionCoordinator
through the TransactionCoordinator.TransactionDriver
it exposes.
Physical transaction
This is the physical underlying transaction that ultimately controls the database transaction. This can be:-
a JTA transaction, as expressed by
UserTransaction
orTransaction
) -
a "JDBC transaction", as expressed through the JDBC
Connection
object
Local Synchronization
The Hibernate transaction api allows the application itself to register JTA Synchronization objects with the TransactionCoordinator. These local Synchronizations work in all transaction environments. SeeTransaction.registerSynchronization(javax.transaction.Synchronization)
and
SynchronizationRegistry
for additional details.-
Exception Summary Exception Description LocalSynchronizationException Wraps an exception thrown from a "local synchronization" (one registered in the SynchronizationRegistry).NullSynchronizationException Indicates an attempt to register a null synchronization.TransactionRequiredForJoinException Indicates a call toTransactionCoordinator.explicitJoin()
that requires an active transaction where there currently is none.