Class RuleBasedTransactionAttribute
java.lang.Object
org.springframework.transaction.support.DefaultTransactionDefinition
org.springframework.transaction.interceptor.DefaultTransactionAttribute
org.springframework.transaction.interceptor.RuleBasedTransactionAttribute
- All Implemented Interfaces:
Serializable, TransactionAttribute, TransactionDefinition
public class RuleBasedTransactionAttribute
extends DefaultTransactionAttribute
implements Serializable
TransactionAttribute implementation that works out whether a given exception
should cause transaction rollback by applying a number of rollback rules,
both positive and negative. If no custom rollback rules apply, this attribute
behaves like DefaultTransactionAttribute (rolling back on runtime exceptions).
TransactionAttributeEditor creates objects of this class.
- Since:
- 09.04.2003
- Author:
- Rod Johnson, Juergen Hoeller
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringPrefix for commit-on-exception rules in description strings.static final StringPrefix for rollback-on-exception rules in description strings.Fields inherited from class DefaultTransactionDefinition
PREFIX_ISOLATION, PREFIX_PROPAGATION, PREFIX_TIMEOUT, READ_ONLY_MARKERFields inherited from interface 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
ConstructorsConstructorDescriptionCreate a new RuleBasedTransactionAttribute, with default settings.RuleBasedTransactionAttribute(int propagationBehavior, List<RollbackRuleAttribute> rollbackRules) Create a new DefaultTransactionAttribute with the given propagation behavior.Copy constructor. -
Method Summary
Modifier and TypeMethodDescriptionReturn the list ofRollbackRuleAttributeobjects (nevernull).booleanrollbackOn(Throwable ex) Winning rule is the shallowest rule (that is, the closest in the inheritance hierarchy to the exception).voidsetRollbackRules(List<RollbackRuleAttribute> rollbackRules) Set the list ofRollbackRuleAttributeobjects (and/orNoRollbackRuleAttributeobjects) to apply.toString()Return an identifying description for this transaction definition.Methods inherited from class DefaultTransactionAttribute
getAttributeDescription, getDescriptor, getLabels, getQualifier, getTimeoutString, resolveAttributeStrings, setDescriptor, setLabels, setQualifier, setTimeoutStringMethods inherited from class DefaultTransactionDefinition
equals, getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeoutMethods inherited from interface TransactionDefinition
getIsolationLevel, getName, getPropagationBehavior, getTimeout, isReadOnly
-
Field Details
-
PREFIX_ROLLBACK_RULE
Prefix for rollback-on-exception rules in description strings.- See Also:
-
PREFIX_COMMIT_RULE
Prefix for commit-on-exception rules in description strings.- See Also:
-
-
Constructor Details
-
RuleBasedTransactionAttribute
public RuleBasedTransactionAttribute()Create a new RuleBasedTransactionAttribute, with default settings. Can be modified through bean property setters.- See Also:
-
RuleBasedTransactionAttribute
Copy constructor. Definition can be modified through bean property setters.- See Also:
-
RuleBasedTransactionAttribute
public RuleBasedTransactionAttribute(int propagationBehavior, List<RollbackRuleAttribute> rollbackRules) 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 interfacerollbackRules- the list of RollbackRuleAttributes to apply- See Also:
-
-
Method Details
-
setRollbackRules
Set the list ofRollbackRuleAttributeobjects (and/orNoRollbackRuleAttributeobjects) to apply.- See Also:
-
getRollbackRules
Return the list ofRollbackRuleAttributeobjects (nevernull). -
rollbackOn
Winning rule is the shallowest rule (that is, the closest in the inheritance hierarchy to the exception). If no rule applies (-1), returnfalse.- Specified by:
rollbackOnin interfaceTransactionAttribute- Overrides:
rollbackOnin classDefaultTransactionAttribute- Parameters:
ex- the exception to evaluate- Returns:
- whether to perform a rollback or not
- See Also:
-
toString
Description copied from class:DefaultTransactionDefinitionReturn an identifying description for this transaction definition.The format matches the one used by
TransactionAttributeEditor, to be able to feedtoStringresults into bean properties of typeTransactionAttribute.Has to be overridden in subclasses for correct
equalsandhashCodebehavior. Alternatively,DefaultTransactionDefinition.equals(Object)andDefaultTransactionDefinition.hashCode()can be overridden themselves.- Overrides:
toStringin classDefaultTransactionDefinition- See Also:
-