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.protected ObjectGet 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(Object savepoint) Set a savepoint for this transaction.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.springframework.transaction.TransactionExecution
getTransactionName, hasTransaction, isNested, isNewTransaction, isReadOnlyMethods inherited from interface org.springframework.transaction.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. -
setSavepoint
Set a savepoint for this transaction. Useful for PROPAGATION_NESTED.- See Also:
-
getSavepoint
Get the savepoint for this transaction, if any. -
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. -
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(java.lang.Object)orSavepointManager.releaseSavepoint(java.lang.Object) - Throws:
NestedTransactionNotSupportedException- if the underlying transaction does not support savepointsTransactionException- 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:
NestedTransactionNotSupportedException- if the underlying transaction does not support savepointsTransactionException- 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:
NestedTransactionNotSupportedException- if the underlying transaction does not support savepointsTransactionException- 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
-