public class

RollbackRuleAttribute

extends Object
implements Serializable
java.lang.Object
   ↳ org.springframework.transaction.interceptor.RollbackRuleAttribute
Known Direct Subclasses

Class Overview

Rule determining whether or not a given exception (and any subclasses) should cause a rollback.

Multiple such rules can be applied to determine whether a transaction should commit or rollback after an exception has been thrown.

Summary

Fields
public static final RollbackRuleAttribute ROLLBACK_ON_RUNTIME_EXCEPTIONS The rollback rule for RuntimeExceptions.
Public Constructors
RollbackRuleAttribute(Class clazz)
Create a new instance of the RollbackRuleAttribute class.
RollbackRuleAttribute(String exceptionName)
Create a new instance of the RollbackRuleAttribute class for the given exceptionName.
Public Methods
boolean equals(Object other)
int getDepth(Throwable ex)
Return the depth of the superclass matching.
String getExceptionName()
Return the pattern for the exception name.
int hashCode()
String toString()
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static final RollbackRuleAttribute ROLLBACK_ON_RUNTIME_EXCEPTIONS

Public Constructors

public RollbackRuleAttribute (Class clazz)

Create a new instance of the RollbackRuleAttribute class.

This is the preferred way to construct a rollback rule that matches the supplied Exception class (and subclasses).

Parameters
clazz throwable class; must be Throwable or a subclass of Throwable
Throws
IllegalArgumentException if the supplied clazz is not a Throwable type or is null

public RollbackRuleAttribute (String exceptionName)

Create a new instance of the RollbackRuleAttribute class for the given exceptionName.

This can be a substring, with no wildcard support at present. A value of "ServletException" would match javax.servlet.ServletException and subclasses, for example.

NB: Consider carefully how specific the pattern is, and whether to include package information (which is not mandatory). For example, "Exception" will match nearly anything, and will probably hide other rules. "java.lang.Exception" would be correct if "Exception" was meant to define a rule for all checked exceptions. With more unusual exception names such as "BaseBusinessException" there's no need to use a fully package-qualified name.

Parameters
exceptionName the exception name pattern; can also be a fully package-qualified class name
Throws
IllegalArgumentException if the supplied exceptionName is null or empty

Public Methods

public boolean equals (Object other)

public int getDepth (Throwable ex)

Return the depth of the superclass matching.

0 means ex matches exactly. Returns -1 if there is no match. Otherwise, returns depth with the lowest depth winning.

public String getExceptionName ()

Return the pattern for the exception name.

public int hashCode ()

public String toString ()