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
Modifier and TypeFieldDescriptionstatic final String
Prefix for commit-on-exception rules in description strings.static final String
Prefix for rollback-on-exception rules in description strings.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
ConstructorDescriptionCreate 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 ofRollbackRuleAttribute
objects (nevernull
).boolean
rollbackOn
(Throwable ex) Winning rule is the shallowest rule (that is, the closest in the inheritance hierarchy to the exception).void
setRollbackRules
(List<RollbackRuleAttribute> rollbackRules) Set the list ofRollbackRuleAttribute
objects (and/orNoRollbackRuleAttribute
objects) to apply.toString()
Return an identifying description for this transaction definition.Methods inherited from class org.springframework.transaction.interceptor.DefaultTransactionAttribute
getAttributeDescription, getDescriptor, getLabels, getQualifier, getTimeoutString, resolveAttributeStrings, setDescriptor, setLabels, setQualifier, setTimeoutString
Methods inherited from class org.springframework.transaction.support.DefaultTransactionDefinition
equals, getDefinitionDescription, getIsolationLevel, getName, getPropagationBehavior, getTimeout, hashCode, isReadOnly, setIsolationLevel, setIsolationLevelName, setName, setPropagationBehavior, setPropagationBehaviorName, setReadOnly, setTimeout
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
-
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:
-
DefaultTransactionDefinition.setPropagationBehavior(int)
DefaultTransactionDefinition.setIsolationLevel(int)
DefaultTransactionDefinition.setTimeout(int)
DefaultTransactionDefinition.setReadOnly(boolean)
DefaultTransactionDefinition.setName(java.lang.String)
setRollbackRules(java.util.List<org.springframework.transaction.interceptor.RollbackRuleAttribute>)
-
RuleBasedTransactionAttribute
Copy constructor. Definition can be modified through bean property setters.- See Also:
-
DefaultTransactionDefinition.setPropagationBehavior(int)
DefaultTransactionDefinition.setIsolationLevel(int)
DefaultTransactionDefinition.setTimeout(int)
DefaultTransactionDefinition.setReadOnly(boolean)
DefaultTransactionDefinition.setName(java.lang.String)
setRollbackRules(java.util.List<org.springframework.transaction.interceptor.RollbackRuleAttribute>)
-
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 ofRollbackRuleAttribute
objects (and/orNoRollbackRuleAttribute
objects) to apply.- See Also:
-
getRollbackRules
Return the list ofRollbackRuleAttribute
objects (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:
rollbackOn
in interfaceTransactionAttribute
- Overrides:
rollbackOn
in classDefaultTransactionAttribute
- Parameters:
ex
- the exception to evaluate- Returns:
- whether to perform a rollback or not
- See Also:
-
toString
Description copied from class:DefaultTransactionDefinition
Return an identifying description for this transaction definition.The format matches the one used by
TransactionAttributeEditor
, to be able to feedtoString
results into bean properties of typeTransactionAttribute
.Has to be overridden in subclasses for correct
equals
andhashCode
behavior. Alternatively,DefaultTransactionDefinition.equals(java.lang.Object)
andDefaultTransactionDefinition.hashCode()
can be overridden themselves.- Overrides:
toString
in classDefaultTransactionDefinition
- See Also:
-