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, Mark Paluch
- See Also:
- 
Field SummaryFields inherited from class DefaultTransactionDefinitionPREFIX_ISOLATION, PREFIX_PROPAGATION, PREFIX_TIMEOUT, READ_ONLY_MARKERFields inherited from interface TransactionDefinitionISOLATION_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 SummaryConstructorsConstructorDescriptionCreate a newDefaultTransactionAttributewith default settings.DefaultTransactionAttribute(int propagationBehavior) Create a newDefaultTransactionAttributewith the given propagation behavior.Copy constructor.
- 
Method SummaryModifier and TypeMethodDescriptionprotected final StringBuilderReturn an identifying description for this transaction attribute.Return a descriptor for this transaction attribute, ornullif none.Return labels associated with this transaction attribute.Return a qualifier value associated with this transaction attribute.Return the timeout to apply, if any, as a String value that resolves to a number of seconds.voidResolve attribute values that are defined as resolvable Strings:setTimeoutString(String),setQualifier(String),setLabels(Collection).booleanrollbackOn(Throwable ex) The default behavior is as with EJB: rollback on unchecked exception (RuntimeException), assuming an unexpected outcome outside any business rules.voidsetDescriptor(@Nullable String descriptor) Set a descriptor for this transaction attribute, for example, indicating where the attribute is applying.voidsetLabels(Collection<String> labels) Associate one or more labels with this transaction attribute.voidsetQualifier(@Nullable String qualifier) Associate a qualifier value with this transaction attribute.voidsetTimeoutString(@Nullable String timeoutString) Set the timeout to apply, if any, as a String value that resolves to a number of seconds.Methods inherited from class DefaultTransactionDefinitionequals, getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeout, toStringMethods inherited from interface TransactionDefinitiongetIsolationLevel, getName, getPropagationBehavior, getTimeout, isReadOnly
- 
Constructor Details- 
DefaultTransactionAttributepublic DefaultTransactionAttribute()Create a newDefaultTransactionAttributewith default settings. Can be modified through bean property setters.- See Also:
 
- 
DefaultTransactionAttributeCopy constructor. Definition can be modified through bean property setters.- See Also:
 
- 
DefaultTransactionAttributepublic DefaultTransactionAttribute(int propagationBehavior) Create a newDefaultTransactionAttributewith the given propagation behavior. Can be modified through bean property setters.- Parameters:
- propagationBehavior- one of the propagation constants in the TransactionDefinition interface
- See Also:
 
 
- 
- 
Method Details- 
setDescriptor
- 
getDescriptor
- 
setTimeoutString
- 
getTimeoutString
- 
setQualifier
- 
getQualifierReturn a qualifier value associated with this transaction attribute.- Specified by:
- getQualifierin interface- TransactionAttribute
- Since:
- 3.0
 
- 
setLabelsAssociate one or more labels with this transaction attribute.This may be used for applying specific transactional behavior or follow a purely descriptive nature. - Since:
- 5.3
- See Also:
 
- 
getLabelsDescription copied from interface:TransactionAttributeReturn labels associated with this transaction attribute.This may be used for applying specific transactional behavior or follow a purely descriptive nature. - Specified by:
- getLabelsin interface- TransactionAttribute
 
- 
rollbackOnThe default behavior is as with EJB: rollback on unchecked exception (RuntimeException), assuming an unexpected outcome outside any business rules. Additionally, we also attempt to rollback onErrorwhich 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:
- rollbackOnin interface- TransactionAttribute
- Parameters:
- ex- the exception to evaluate
- Returns:
- whether to perform a rollback or not
- See Also:
 
- 
resolveAttributeStringsResolve attribute values that are defined as resolvable Strings:setTimeoutString(String),setQualifier(String),setLabels(Collection). This is typically used for resolving "${...}" placeholders.- Parameters:
- resolver- the embedded value resolver to apply, if any
- Since:
- 5.3
 
- 
getAttributeDescriptionReturn an identifying description for this transaction attribute.Available to subclasses, for inclusion in their toString()result.
 
-