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 rules are relevant to the exception, it 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:
TransactionAttributeEditor
, Serialized Form
Field Summary
Fields Modifier and Type Field Description static String
PREFIX_COMMIT_RULE
Prefix for commit-on-exception rules in description stringsstatic String
PREFIX_ROLLBACK_RULE
Prefix for rollback-on-exception rules in description stringsFields 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 RuleBasedTransactionAttribute()
Create a new RuleBasedTransactionAttribute, with default settings.RuleBasedTransactionAttribute(int propagationBehavior, List<RollbackRuleAttribute> rollbackRules)
Create a new DefaultTransactionAttribute with the given propagation behavior.RuleBasedTransactionAttribute(RuleBasedTransactionAttribute other)
Copy constructor.
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description List<RollbackRuleAttribute>
getRollbackRules()
Return 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.String
toString()
Return an identifying description for this transaction definition.Methods inherited from class org.springframework.transaction.interceptor.DefaultTransactionAttribute
getAttributeDescription, getDescriptor, getQualifier, setDescriptor, setQualifier
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 Detail
PREFIX_ROLLBACK_RULE
public static final String PREFIX_ROLLBACK_RULE
Prefix for rollback-on-exception rules in description strings- See Also:
- Constant Field Values
PREFIX_COMMIT_RULE
public static final String PREFIX_COMMIT_RULE
Prefix for commit-on-exception rules in description strings- See Also:
- Constant Field Values
Constructor Detail
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
public RuleBasedTransactionAttribute(RuleBasedTransactionAttribute other)
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:
DefaultTransactionDefinition.setIsolationLevel(int)
,DefaultTransactionDefinition.setTimeout(int)
,DefaultTransactionDefinition.setReadOnly(boolean)
Method Detail
setRollbackRules
public void setRollbackRules(List<RollbackRuleAttribute> rollbackRules)
Set the list ofRollbackRuleAttribute
objects (and/orNoRollbackRuleAttribute
objects) to apply.- See Also:
RollbackRuleAttribute
,NoRollbackRuleAttribute
getRollbackRules
public List<RollbackRuleAttribute> getRollbackRules()
Return the list ofRollbackRuleAttribute
objects (nevernull
).
rollbackOn
public boolean rollbackOn(Throwable ex)
Winning rule is the shallowest rule (that is, the closest in the inheritance hierarchy to the exception). If no rule applies (-1), return false.- 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:
TransactionAttribute.rollbackOn(java.lang.Throwable)
toString
public String 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:
DefaultTransactionDefinition.getDefinitionDescription()
,TransactionAttributeEditor