Class DefaultTransactionAttribute
- java.lang.Object
- org.springframework.transaction.support.DefaultTransactionDefinition
- org.springframework.transaction.interceptor.DefaultTransactionAttribute
- All Implemented Interfaces:
Serializable
,TransactionAttribute
,TransactionDefinition
- Direct Known Subclasses:
RuleBasedTransactionAttribute
public class DefaultTransactionAttribute extends DefaultTransactionDefinition implements TransactionAttribute
Spring's common transaction attribute implementation. Rolls back on runtime, but not checked, exceptions by default.- Since:
- 16.03.2003
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
- Serialized Form
Field Summary
Fields inherited from class org.springframework.transaction.support.DefaultTransactionDefinition
PREFIX_ISOLATION, PREFIX_PROPAGATION, PREFIX_TIMEOUT, READ_ONLY_MARKER
Fields inherited from interface org.springframework.transaction.TransactionDefinition
ISOLATION_DEFAULT, ISOLATION_READ_COMMITTED, ISOLATION_READ_UNCOMMITTED, ISOLATION_REPEATABLE_READ, ISOLATION_SERIALIZABLE, PROPAGATION_MANDATORY, PROPAGATION_NESTED, PROPAGATION_NEVER, PROPAGATION_NOT_SUPPORTED, PROPAGATION_REQUIRED, PROPAGATION_REQUIRES_NEW, PROPAGATION_SUPPORTS, TIMEOUT_DEFAULT
Constructor Summary
Constructors Constructor Description DefaultTransactionAttribute()
Create a new DefaultTransactionAttribute, with default settings.DefaultTransactionAttribute(int propagationBehavior)
Create a new DefaultTransactionAttribute with the given propagation behavior.DefaultTransactionAttribute(TransactionAttribute other)
Copy constructor.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected StringBuilder
getAttributeDescription()
Return an identifying description for this transaction attribute.String
getDescriptor()
Return a descriptor for this transaction attribute, ornull
if none.String
getQualifier()
Return a qualifier value associated with this transaction attribute.boolean
rollbackOn(Throwable ex)
The default behavior is as with EJB: rollback on unchecked exception (RuntimeException
), assuming an unexpected outcome outside of any business rules.void
setDescriptor(String descriptor)
Set a descriptor for this transaction attribute, e.g.void
setQualifier(String qualifier)
Associate a qualifier value with this transaction attribute.Methods inherited from class org.springframework.transaction.support.DefaultTransactionDefinition
equals, getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeout, toString
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.springframework.transaction.TransactionDefinition
getIsolationLevel, getName, getPropagationBehavior, getTimeout, isReadOnly
Constructor Detail
DefaultTransactionAttribute
public DefaultTransactionAttribute()
Create a new DefaultTransactionAttribute, with default settings. Can be modified through bean property setters.
DefaultTransactionAttribute
public DefaultTransactionAttribute(TransactionAttribute other)
Copy constructor. Definition can be modified through bean property setters.
DefaultTransactionAttribute
public DefaultTransactionAttribute(int propagationBehavior)
Create a new DefaultTransactionAttribute with the given propagation behavior. Can be modified through bean property setters.- Parameters:
propagationBehavior
- one of the propagation constants in the TransactionDefinition interface- See Also:
DefaultTransactionDefinition.setIsolationLevel(int)
,DefaultTransactionDefinition.setTimeout(int)
,DefaultTransactionDefinition.setReadOnly(boolean)
Method Detail
setQualifier
public void setQualifier(String qualifier)
Associate a qualifier value with this transaction attribute.This may be used for choosing a corresponding transaction manager to process this specific transaction.
- Since:
- 3.0
getQualifier
public String getQualifier()
Return a qualifier value associated with this transaction attribute.- Specified by:
getQualifier
in interfaceTransactionAttribute
- Since:
- 3.0
setDescriptor
public void setDescriptor(String descriptor)
Set a descriptor for this transaction attribute, e.g. indicating where the attribute is applying.- Since:
- 4.3.4
getDescriptor
public String getDescriptor()
Return a descriptor for this transaction attribute, ornull
if none.- Since:
- 4.3.4
rollbackOn
public boolean rollbackOn(Throwable ex)
The default behavior is as with EJB: rollback on unchecked exception (RuntimeException
), assuming an unexpected outcome outside of any business rules. Additionally, we also attempt to rollback onError
which is clearly an unexpected outcome as well. By contrast, a checked exception is considered a business exception and therefore a regular expected outcome of the transactional business method, i.e. a kind of alternative return value which still allows for regular completion of resource operations.This is largely consistent with TransactionTemplate's default behavior, except that TransactionTemplate also rolls back on undeclared checked exceptions (a corner case). For declarative transactions, we expect checked exceptions to be intentionally declared as business exceptions, leading to a commit by default.
- Specified by:
rollbackOn
in interfaceTransactionAttribute
- Parameters:
ex
- the exception to evaluate- Returns:
- whether to perform a rollback or not
- See Also:
TransactionTemplate.execute(org.springframework.transaction.support.TransactionCallback<T>)
getAttributeDescription
protected final StringBuilder getAttributeDescription()
Return an identifying description for this transaction attribute.Available to subclasses, for inclusion in their
toString()
result.