テストサマリーの一部の春、ネストされたトランザクションのロールバックに[ターン]

はじめに

これは私が事務事項をネスト春にいくつかの問題が発生したレコードの要約です。
シーン構内

テスト・データベース:SQL Serverの
-サービスクラスA方法Aメソッド呼び出しサービスBクラスB、

サービスA {
     ボイドmethodA(){
         ServiceB.methodB();
     }
}
ServiceB {
     ボイドmethodB(){
     }
}

    。1
    2
    3。
    4。
    5。
    6
    7
    8
    9

注:@Transactional唯一の例外の春には、実行時にキャッチされ、ロールバック、される
すべての例外をロールバックしたい場合は、使用@Transactional(rollbackFor = Exception.class)
デフォルトのトランザクション伝播の振る舞い:伝播= PROPAGATION_REQUIRED
シーン

A、Bの使用トランザクション注釈:@Transactional(rollbackFor = Exception.class)、
試験条件結果
B例外が発生し、キャッチがA AロールバックロールバックBされていない
、それがされているため、B例外が例外のロールバックA、Bのロールバックを投げずに、Acatch異常ログを発生しますが、異常があらわれた(トランザクションはロールバックマークロールバック専用AS)
B例外が発生し、Acatch例外、ログ記録、ロールバック例外がBロールバック、スローされた
Bの実装を成功さ、ロールバック例外は、Bのロールバックが発生

、Bは限りがあるので、発生します。結論を異常が、A及びBは、ロールバックされ
、シーンII

アノテーションを使用してAトランザクション:@Transactional(rollbackFor = Exception.class)、 Bがトランザクションを使用しない、
試験結果条件
B例外が発生し、AがキャッチAをロールバックされていない、Bロールバック
B異常が発生します、Acatch例外、ロギングは、例外aを投げずに、Bはないロールバックを行う
Acatch例外、ログ記録、ロールバック例外がBのロールバック、スローされ、Bの例外が発生した
Bの実装を成功した後は、異常が発生しましたロールバック、Bロールバック

結論:限り、異常Aと、Bがロールバックされ; B例外がキャッチ例外場合、発生した、しかし、Bはロールバックされていない、その後、例外をスローしません。加えて、 、A、Bはバックロールされている
(通常は)シーン3を

ものではありません使用中 注釈を使用して、Bトランザクション:@Transactional(rollbackFor = Exception.class)
テスト条件結果
Bの例外が発生すると、ロールバックは、A、Bロールバックをキャッチしません
B例外発生し、例外をスローすることなくAcatch異常ログが、Aをロールバックされていない、Bロールバック
B例外が発生し、Acatch異常ログは、例外は、ロールバックA、Bロールバックスローされていない
、Bが正常に実行されています例外は、Bがロールバックされません発生した

結論:; ABが異常であるかどうか、ロールバックされていないが唯一の例外は、Bは、Bがロールバックされます発生する
シーン4

:@Transactional(rollbackFor =例外デフォルトのアノテーションを使用してトランザクションを。クラス)
@Transactional(伝播= Propagation.REQUIRES_NEW、rollbackFor:新しいトランザクションアノテーションを使用してB = Exception.class)
試験結果条件
B例外が発生し、ロールバックは、Bロールバックキャッチしない
B例外が発生し、Acatch異常レコードをログは、ロールされていないバック例外がスローされることなく、、ロールバック・Bの
B例外がAcatch例外、ログ記録、ロールバック例外がBロールバック、スローされ、発生し
、ロールバック例外が発生したBの実装を成功さ、Bはしないでくださいロールバック

結論:、異常が発生し、ロールバックのみ、Aは、BがロールバックしないB例外が発生し、ロールバックのみBを、ロールバックされない

:互いに独立して、二つの別々のトランザクションでAB、すなわち。
----------------
免責事項:この記事は元の記事CSDNブロガー「iSteinsGate」で、CC 4.0 BY-SAの著作権契約書に従って、元のソースのリンクと、この文を添付してください、再現。 。
オリジナルリンクします。https://blog.csdn.net/weixin_39911952/article/details/94406003

おすすめ

転載: www.cnblogs.com/use-D/p/12571839.html