Class HibernateTransactionManager
java.lang.Object
io.micronaut.transaction.support.AbstractPropagatedStatusTransactionOperations<T,C>
io.micronaut.transaction.support.AbstractTransactionOperations<DefaultTransactionStatus<C>,C>
io.micronaut.transaction.support.AbstractDefaultTransactionOperations<org.hibernate.Session>
io.micronaut.transaction.hibernate.HibernateTransactionManager
- All Implemented Interfaces:
SynchronousTransactionManager<org.hibernate.Session>,TransactionManager,TransactionOperations<org.hibernate.Session>
@EachBean(javax.sql.DataSource.class)
@Replaces(DataSourceTransactionManager.class)
@Requires(condition=io.micronaut.transaction.hibernate.HibernateTransactionManagerCondition.class)
public final class HibernateTransactionManager
extends AbstractDefaultTransactionOperations<org.hibernate.Session>
The Hibernate transaction manager.
Partially based on https://github.com/spring-projects/spring-framework/blob/main/spring-orm/src/main/java/org/springframework/orm/hibernate5/HibernateTransactionManager.java
- Since:
- 4.0.0
- Author:
- Denis Stepanov
-
Field Summary
Fields inherited from class io.micronaut.transaction.support.AbstractTransactionOperations
connectionOperations, logger, synchronousConnectionManager -
Method Summary
Modifier and TypeMethodDescriptionprotected voiddoBegin(DefaultTransactionStatus<org.hibernate.Session> txStatus) Begin a new transaction with semantics according to the given transaction definition.protected voiddoCommit(DefaultTransactionStatus<org.hibernate.Session> tx) Perform an actual commit of the given transaction.protected voiddoNestedBegin(DefaultTransactionStatus<org.hibernate.Session> status) Alternative of theAbstractTransactionOperations.doBegin(InternalTransaction)intended for a nested transaction.protected voiddoNestedCommit(DefaultTransactionStatus<org.hibernate.Session> status) Alternative of theAbstractTransactionOperations.doCommit(InternalTransaction)intended for a nested transaction.protected voiddoNestedRollback(DefaultTransactionStatus<org.hibernate.Session> status) Alternative of theAbstractTransactionOperations.doRollback(InternalTransaction)intended for a nested transaction.protected voiddoRollback(DefaultTransactionStatus<org.hibernate.Session> tx) Perform an actual rollback of the given transaction.@NonNull org.hibernate.SessionObtains the connection for the current transaction.@io.micronaut.core.annotation.NonNull booleanCheck if the connection exists.Methods inherited from class io.micronaut.transaction.support.AbstractDefaultTransactionOperations
createExistingTransactionStatus, createNewTransactionStatus, createNoTxTransactionStatusMethods inherited from class io.micronaut.transaction.support.AbstractTransactionOperations
commit, determineTimeout, doExecute, doResume, doSuspend, getConnectionDefinition, getTransaction, rollback, suspendMethods inherited from class io.micronaut.transaction.support.AbstractPropagatedStatusTransactionOperations
execute, extendCurrentPropagatedContext, findTransactionStatusMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface io.micronaut.transaction.TransactionOperations
execute, executeRead, executeWrite, findTransactionStatus
-
Method Details
-
doBegin
Description copied from class:AbstractTransactionOperationsBegin a new transaction with semantics according to the given transaction definition. Does not have to care about applying the propagation behavior, as this has already been handled by this abstract manager.This method gets called when the transaction manager has decided to actually start a new transaction. Either there wasn't any transaction before, or the previous transaction has been suspended.
- Specified by:
doBeginin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Parameters:
txStatus- The transaction
-
doCommit
Description copied from class:AbstractTransactionOperationsPerform an actual commit of the given transaction.An implementation does not need to check the "new transaction" flag or the rollback-only flag; this will already have been handled before. Usually, a straight commit will be performed on the transaction object contained in the passed-in status.
- Specified by:
doCommitin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Parameters:
tx- The transaction
-
doRollback
Description copied from class:AbstractTransactionOperationsPerform an actual rollback of the given transaction.An implementation does not need to check the "new transaction" flag; this will already have been handled before. Usually, a straight rollback will be performed on the transaction object contained in the passed-in status.
- Specified by:
doRollbackin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Parameters:
tx- The transaction
-
doNestedBegin
Description copied from class:AbstractTransactionOperationsAlternative of theAbstractTransactionOperations.doBegin(InternalTransaction)intended for a nested transaction.- Overrides:
doNestedBeginin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Parameters:
status- The transaction
-
doNestedCommit
Description copied from class:AbstractTransactionOperationsAlternative of theAbstractTransactionOperations.doCommit(InternalTransaction)intended for a nested transaction.- Overrides:
doNestedCommitin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Parameters:
status- The transaction
-
doNestedRollback
Description copied from class:AbstractTransactionOperationsAlternative of theAbstractTransactionOperations.doRollback(InternalTransaction)intended for a nested transaction.- Overrides:
doNestedRollbackin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Parameters:
status- The transaction
-
getConnection
@NonNull public @NonNull org.hibernate.Session getConnection()Description copied from interface:TransactionOperationsObtains the connection for the current transaction.- Returns:
- The connection
-
hasConnection
@NonNull public @io.micronaut.core.annotation.NonNull boolean hasConnection()Description copied from interface:TransactionOperationsCheck if the connection exists.- Specified by:
hasConnectionin interfaceTransactionOperations<org.hibernate.Session>- Overrides:
hasConnectionin classAbstractTransactionOperations<DefaultTransactionStatus<org.hibernate.Session>,org.hibernate.Session> - Returns:
- True if transaction exists
-