@Transactional(REQUIRES_NEW)を呼び出す@Transactional(REQUIRED)メソッドがあります。私が見ているデフォルトの動作は、内部トランザクションがロールバックされているが、外部トランザクションがコミットされていることです。これは予想される動作ですか?
user689842
質問する
1850 次
1 に答える
2
はい、それは予想される動作です。内側のトランザクションが実行されている間、外側のトランザクションは一時停止されます。内部トランザクションが終了すると(コミットかロールバックかに関係なく)、外部トランザクションが再開されます。
ところで、ドキュメントには次のように書かれています。
PROPAGATION_REQUIRES_NEWは、PROPAGATION_REQUIREDとは対照的に、影響を受けるトランザクションスコープごとに完全に独立したトランザクションを使用します。その場合、基礎となる物理トランザクションは異なり、したがって、外部トランザクションは内部トランザクションのロールバックステータスの影響を受けずに、独立してコミットまたはロールバックできます。
于 2012-09-11T17:55:24.693 に答える