パッケージ jakarta.transaction

アノテーション型 Transactional


  • @InheritedSE
    @InterceptorBinding
    @TargetSE({TYPESE,METHODSE})
    @RetentionSE(RUNTIMESE)
    public @interface Transactional

    jakarta.transaction.Transactional アノテーションは、CDI マネージド Bean、および Jakarta EE 仕様によってマネージド Bean として定義されたクラスのトランザクション境界を、メソッドレベルのアノテーションがメソッドレベルのアノテーションをオーバーライドするクラスレベルとメソッドレベルの両方で宣言的に制御する機能をアプリケーションに提供します。クラスレベル。

    Jakarta Enterprise Beans での @Transactional の使用に関する制限については、Jakarta Enterprise Beans 仕様を参照してください。

    このサポートは、必要な一時停止、再開などを実行する CDI インターセプターの実装を介して提供されます。トランザクションインターセプターは、ビジネスメソッドの呼び出しにのみ介入し、ライフサイクルイベントには介入しません。ライフサイクルメソッドは、未指定のトランザクションコンテキストで呼び出されます。

    Bean のスコープ内から UserTransaction インターフェースのメソッドを呼び出そうとする場合、または @Transactional と、NOT_SUPPORTED または NEVER 以外の Transactional.TxType でアノテーションが付けられたメソッドは、IllegalStateException をスローする必要があります。UserTransaction の使用は、ライフサイクルイベント内で許可されています。@Transactional アノテーションに関係なく、TransactionSynchronizationRegistry の使用は許可されます。

    トランザクションインターセプターには、Interceptor.Priority.PLATFORM_BEFORE + 200 の優先度が必要です。詳細については、インターセプターの仕様を参照してください。

    アノテーションの TxType 要素は、Bean メソッドがトランザクションコンテキスト内で実行されるかどうかを示します。TxType.REQUIRED がデフォルトです。

    デフォルトでは、チェックされた例外は、トランザクションインターセプターがトランザクションにロールバックのマークを付けることはなく、RuntimeException のインスタンスとそのサブクラスはマークします。このデフォルトの動作は、インターセプターがトランザクションにロールバックのマークを付けることになる例外や、ロールバックにならない例外を指定することで変更できます。

    rollbackOn 要素を設定すると、インターセプターがトランザクションをロールバック対象としてマークする必要がある例外を示すことができます。

    逆に、dontRollbackOn 要素を設定すると、インターセプターがトランザクションをロールバック対象としてマークしてはならない例外を示すことができます。

    これらの要素のいずれかにクラスが指定されている場合、指定された動作はそのクラスのサブクラスにも適用されます。両方の要素が指定されている場合は、dontRollbackOn が優先されます。

    導入:
    JTA 1.2
    バージョン:
    Jakarta Transactions 2.0
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      ClassSE[]dontRollbackOn
      dontRollbackOn 要素を設定すると、インターセプターがトランザクションをロールバック対象としてマークしてはならない例外を示すことができます。
      ClassSE[]rollbackOn
      rollbackOn 要素を設定すると、インターセプターがトランザクションをロールバック対象としてマークする必要がある例外を示すことができます。
      Transactional.TxTypevalue
      Transactional アノテーションの TxType 要素は、Bean メソッドがトランザクションコンテキスト内で実行されるかどうかを示します。
    • 要素の詳細

      • value

        Transactional.TxType value
        Transactional アノテーションの TxType 要素は、Bean メソッドがトランザクションコンテキスト内で実行されるかどうかを示します。
        戻り値:
        TxType エレメント
        デフォルト:
        jakarta.transaction.Transactional.TxType.REQUIRED
      • rollbackOn

        ClassSE[] rollbackOn
        rollbackOn 要素は、インターセプターがトランザクションをロールバック対象としてマークする必要がある例外を示すように設定できます。逆に、dontRollbackOn 要素は、インターセプターがトランザクションをロールバック対象としてマークしてはならない例外を示すように設定できます。これらのいずれかの要素にクラスが指定されている場合、指定された動作はそのクラスのサブクラスにも適用されます。両方の要素が指定されている場合は、dontRollbackOn が優先されます。
        戻り値:
        例外のクラス []
        デフォルト:
        {}
      • dontRollbackOn

        ClassSE[] dontRollbackOn
        dontRollbackOn 要素は、インターセプターがトランザクションをロールバック対象としてマークしてはならない例外を示すために設定できます。逆に、rollbackOn 要素は、インターセプターがトランザクションをロールバック対象としてマークしなければならない例外を示すために設定できます。これらのいずれかの要素にクラスが指定されている場合、指定された動作はそのクラスのサブクラスにも適用されます。両方の要素が指定されている場合は、dontRollbackOn が優先されます。
        戻り値:
        例外のクラス []
        デフォルト:
        {}