クラス RollbackRuleAttribute

java.lang.ObjectSE
org.springframework.transaction.interceptor.RollbackRuleAttribute
実装されたすべてのインターフェース:
SerializableSE
既知の直属サブクラス
NoRollbackRuleAttribute

public class RollbackRuleAttribute extends ObjectSE implements SerializableSE
特定の例外がロールバックを引き起こすかどうかを決定するルール。

このような複数のルールを適用して、例外がスローされた後にトランザクションをコミットするかロールバックするかを決定できます。

各ルールは、それぞれ RollbackRuleAttribute(Class) または RollbackRuleAttribute(String) を介して提供される例外型または例外パターンに基づいています。

ロールバックルールが例外型で定義されている場合、その型はスローされた例外の型とそのスーパー型との照合に使用され、型の安全性を提供し、パターンの使用時に発生する可能性のある意図しない一致を回避します。例: jakarta.servlet.ServletException.class の値は、型 jakarta.servlet.ServletException およびそのサブクラスのスローされた例外にのみ一致します。

ロールバックルールが例外パターンで定義されている場合、パターンは完全修飾クラス名または例外型の完全修飾クラス名のサブストリング(Throwable のサブクラスである必要があります)であり、現在ワイルドカードはサポートされていません。例: "jakarta.servlet.ServletException" または "ServletException" の値は、jakarta.servlet.ServletException とそのサブクラスに一致します。

ロールバックルールのセマンティクス、パターン、パターンベースのルールとの意図しない一致の可能性に関する警告の詳細については、@Transactional の javadoc を参照してください。

導入:
09.04.2003
作成者:
Rod Johnson, Sam Brannen
関連事項:
  • フィールドの詳細

  • コンストラクターの詳細

    • RollbackRuleAttribute

      public RollbackRuleAttribute(ClassSE<?> exceptionType)
      指定された exceptionType の RollbackRuleAttribute クラスの新しいインスタンスを作成します。

      これは、指定された例外の型とそのサブクラスを型安全に一致させるロールバック規則を構築するための推奨される方法です。

      ロールバックルールのセマンティクスの詳細については、@Transactional の javadoc を参照してください。

      パラメーター:
      exceptionType - 例外型。ThrowableSE または Throwable のサブクラスである必要があります
      例外:
      IllegalArgumentExceptionSE - 提供された exceptionType が Throwable 型ではない、または null である場合
    • RollbackRuleAttribute

      public RollbackRuleAttribute(StringSE exceptionPattern)
      指定された exceptionPattern の RollbackRuleAttribute クラスの新しいインスタンスを作成します。

      ロールバックルールのセマンティクス、パターン、意図しない一致の可能性に関する警告の詳細については、@Transactional の javadoc を参照してください。

      型の安全性を向上させ、意図しない一致を回避するには、代わりに RollbackRuleAttribute(Class) を使用してください。

      パラメーター:
      exceptionPattern - 例外名パターン。完全にパッケージ修飾されたクラス名にすることもできます
      例外:
      IllegalArgumentExceptionSE - 指定された exceptionPattern が null または空の場合
  • メソッドの詳細

    • getExceptionName

      public StringSE getExceptionName()
      このルールが照合に使用する構成済みの例外名パターンを取得します。
      関連事項:
    • getDepth

      public int getDepth(ThrowableSE exception)
      次のセマンティクスを使用して、スーパークラスマッチングの深さを返します。
      • -1 は、このルールが提供された exception と一致しないことを意味します。
      • 0 は、このルールが提供された exception と直接一致することを意味します。
      • その他の正の値は、このルールがスーパークラス階層内の指定された exception と一致することを意味します。この値は、指定された exception と、このルールが直接一致する例外との間のクラス階層内のレベル数です。

      特定の例外と一致するロールバックルールを比較する場合、一致する深さが低いルールが優先されます。例: 直接一致(depth == 0)は、スーパークラス階層(depth > 0)の一致に勝ちます。

      RollbackRuleAttribute(String) を介して例外パターンで構築された場合、ネストされた例外型または同様の名前の例外型に対する一致は、直接一致があったかのように、クラス階層内の対応するレベルでの一致を示す深さを返します。

    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString