Class AbstractTransactionStatus
- All Implemented Interfaces:
Flushable, SavepointManager, TransactionExecution, TransactionStatus
- Direct Known Subclasses:
DefaultTransactionStatus, SimpleTransactionStatus
TransactionStatus interface.
Pre-implements the handling of local rollback-only and completed flags, and
delegation to an underlying SavepointManager.
Also offers the option of a holding a savepoint within the transaction.
Does not assume any specific internal transaction handling, such as an underlying transaction object, and no transaction synchronization mechanism.
- Since:
- 1.2.3
- Author:
- Juergen Hoeller
- See Also:
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidCreate a savepoint and hold it for the transaction.This implementation delegates to a SavepointManager for the underlying transaction, if possible.Get the savepoint for this transaction, if any.protected SavepointManagerReturn a SavepointManager for the underlying transaction, if possible.booleanReturn whether this transaction internally carries a savepoint, that is, has been created as nested transaction based on a savepoint.booleanReturn whether this transaction is completed, that is, whether it has already been committed or rolled back.booleanTemplate method for determining the global rollback-only flag of the underlying transaction, if any.booleanDetermine the rollback-only flag via checking this TransactionStatus.booleanDetermine the rollback-only flag via checking both the local rollback-only flag of this TransactionStatus and the global rollback-only flag of the underlying transaction, if any.voidRelease the savepoint that is held for the transaction.voidreleaseSavepoint(Object savepoint) This implementation delegates to a SavepointManager for the underlying transaction, if possible.voidRoll back to the savepoint that is held for the transaction and release the savepoint right afterwards.voidrollbackToSavepoint(Object savepoint) This implementation delegates to a SavepointManager for the underlying transaction, if possible.voidMark this transaction as completed, that is, committed or rolled back.voidSet the transaction rollback-only.protected voidsetSavepoint(@Nullable Object savepoint) Set a savepoint for this transaction.Methods inherited from class Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface TransactionExecution
getTransactionName, hasTransaction, isNested, isNewTransaction, isReadOnlyMethods inherited from interface TransactionStatus
flush
-
Constructor Details
-
AbstractTransactionStatus
public AbstractTransactionStatus()
-
-
Method Details
-
setRollbackOnly
public void setRollbackOnly()Description copied from interface:TransactionExecutionSet the transaction rollback-only. This instructs the transaction manager that the only possible outcome of the transaction may be a rollback, as alternative to throwing an exception which would in turn trigger a rollback.The default implementation throws an UnsupportedOperationException.
- Specified by:
setRollbackOnlyin interfaceTransactionExecution- See Also:
-
isRollbackOnly
public boolean isRollbackOnly()Determine the rollback-only flag via checking both the local rollback-only flag of this TransactionStatus and the global rollback-only flag of the underlying transaction, if any.- Specified by:
isRollbackOnlyin interfaceTransactionExecution- See Also:
-
isLocalRollbackOnly
public boolean isLocalRollbackOnly()Determine the rollback-only flag via checking this TransactionStatus.Will only return "true" if the application called
setRollbackOnlyon this TransactionStatus object. -
isGlobalRollbackOnly
public boolean isGlobalRollbackOnly()Template method for determining the global rollback-only flag of the underlying transaction, if any.This implementation always returns
false. -
setCompleted
public void setCompleted()Mark this transaction as completed, that is, committed or rolled back. -
isCompleted
public boolean isCompleted()Description copied from interface:TransactionExecutionReturn whether this transaction is completed, that is, whether it has already been committed or rolled back.The default implementation returns
false.- Specified by:
isCompletedin interfaceTransactionExecution
-
hasSavepoint
public boolean hasSavepoint()Description copied from interface:TransactionStatusReturn whether this transaction internally carries a savepoint, that is, has been created as nested transaction based on a savepoint.This method is mainly here for diagnostic purposes, alongside
TransactionExecution.isNewTransaction(). For programmatic handling of custom savepoints, use the operations provided bySavepointManager.The default implementation returns
false.- Specified by:
hasSavepointin interfaceTransactionStatus- See Also:
-
setSavepoint
-
getSavepoint
-
createAndHoldSavepoint
Create a savepoint and hold it for the transaction.- Throws:
NestedTransactionNotSupportedException- if the underlying transaction does not support savepointsTransactionException- See Also:
-
rollbackToHeldSavepoint
Roll back to the savepoint that is held for the transaction and release the savepoint right afterwards.- Throws:
TransactionException- See Also:
-
releaseHeldSavepoint
Release the savepoint that is held for the transaction.- Throws:
TransactionException- See Also:
-
createSavepoint
This implementation delegates to a SavepointManager for the underlying transaction, if possible.- Specified by:
createSavepointin interfaceSavepointManager- Returns:
- a savepoint object, to be passed into
SavepointManager.rollbackToSavepoint(Object)orSavepointManager.releaseSavepoint(Object) - Throws:
TransactionException- if the savepoint could not be created, for example because the transaction is not in an appropriate state- See Also:
-
rollbackToSavepoint
This implementation delegates to a SavepointManager for the underlying transaction, if possible.- Specified by:
rollbackToSavepointin interfaceSavepointManager- Parameters:
savepoint- the savepoint to roll back to- Throws:
TransactionException- if the rollback failed- See Also:
-
releaseSavepoint
This implementation delegates to a SavepointManager for the underlying transaction, if possible.- Specified by:
releaseSavepointin interfaceSavepointManager- Parameters:
savepoint- the savepoint to release- Throws:
TransactionException- if the release failed- See Also:
-
getSavepointManager
Return a SavepointManager for the underlying transaction, if possible.Default implementation always throws a NestedTransactionNotSupportedException.
- Throws:
NestedTransactionNotSupportedException- if the underlying transaction does not support savepoints
-