Class AbstractTransactionStatus
- java.lang.Object
- org.springframework.transaction.support.AbstractTransactionStatus
- All Implemented Interfaces:
Flushable,SavepointManager,TransactionStatus
- Direct Known Subclasses:
DefaultTransactionStatus,SimpleTransactionStatus
public abstract class AbstractTransactionStatus extends Object implements TransactionStatus
Abstract base implementation of theTransactionStatusinterface.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:
setRollbackOnly(),isRollbackOnly(),setCompleted(),isCompleted(),getSavepointManager(),SimpleTransactionStatus,DefaultTransactionStatus
Constructor Summary
Constructors Constructor Description AbstractTransactionStatus()
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcreateAndHoldSavepoint()Create a savepoint and hold it for the transaction.ObjectcreateSavepoint()This implementation delegates to a SavepointManager for the underlying transaction, if possible.voidflush()This implementations is empty, considering flush as a no-op.protected ObjectgetSavepoint()Get the savepoint for this transaction, if any.protected SavepointManagergetSavepointManager()Return a SavepointManager for the underlying transaction, if possible.booleanhasSavepoint()Return whether this transaction internally carries a savepoint, that is, has been created as nested transaction based on a savepoint.booleanisCompleted()Return whether this transaction is completed, that is, whether it has already been committed or rolled back.booleanisGlobalRollbackOnly()Template method for determining the global rollback-only flag of the underlying transaction, if any.booleanisLocalRollbackOnly()Determine the rollback-only flag via checking this TransactionStatus.booleanisRollbackOnly()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.voidreleaseHeldSavepoint()Release the savepoint that is held for the transaction.voidreleaseSavepoint(Object savepoint)This implementation delegates to a SavepointManager for the underlying transaction, if possible.voidrollbackToHeldSavepoint()Roll 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.voidsetCompleted()Mark this transaction as completed, that is, committed or rolled back.voidsetRollbackOnly()Set 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, wait
Methods inherited from interface org.springframework.transaction.TransactionStatus
isNewTransaction
Constructor Detail
AbstractTransactionStatus
public AbstractTransactionStatus()
Method Detail
setRollbackOnly
public void setRollbackOnly()
Description copied from interface:TransactionStatusSet 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.This is mainly intended for transactions managed by
TransactionTemplateorTransactionInterceptor, where the actual commit/rollback decision is made by the container.
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 interfaceTransactionStatus- See Also:
isLocalRollbackOnly(),isGlobalRollbackOnly()
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.
flush
public void flush()
This implementations is empty, considering flush as a no-op.- Specified by:
flushin interfaceFlushable- Specified by:
flushin interfaceTransactionStatus
setCompleted
public void setCompleted()
Mark this transaction as completed, that is, committed or rolled back.
isCompleted
public boolean isCompleted()
Description copied from interface:TransactionStatusReturn whether this transaction is completed, that is, whether it has already been committed or rolled back.
setSavepoint
protected void setSavepoint(Object savepoint)
Set a savepoint for this transaction. Useful for PROPAGATION_NESTED.
getSavepoint
protected Object getSavepoint()
Get the savepoint for this transaction, if any.
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
TransactionStatus.isNewTransaction(). For programmatic handling of custom savepoints, use the operations provided bySavepointManager.
createAndHoldSavepoint
public void createAndHoldSavepoint() throws TransactionException
Create a savepoint and hold it for the transaction.- Throws:
NestedTransactionNotSupportedException- if the underlying transaction does not support savepointsTransactionException
rollbackToHeldSavepoint
public void rollbackToHeldSavepoint() throws TransactionException
Roll back to the savepoint that is held for the transaction and release the savepoint right afterwards.- Throws:
TransactionException
releaseHeldSavepoint
public void releaseHeldSavepoint() throws TransactionException
Release the savepoint that is held for the transaction.- Throws:
TransactionException
createSavepoint
public Object createSavepoint() throws TransactionException
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:
getSavepointManager(),SavepointManager.createSavepoint()
rollbackToSavepoint
public void rollbackToSavepoint(Object savepoint) throws TransactionException
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:
getSavepointManager(),SavepointManager.rollbackToSavepoint(Object)
releaseSavepoint
public void releaseSavepoint(Object savepoint) throws TransactionException
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(),SavepointManager.releaseSavepoint(Object)
getSavepointManager
protected SavepointManager 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