2016-04-03 8 views
0
transactionalMethod() { 
    Model model = service.fetch() 
    nestedTransactionalMethod(model) //REQUIRES_NEW transaction 
} 

上記のコードスニペットで、nestedTransactionalMethod()は新しいセッションを作成しますか?それは、それに渡されたモデルが取り外されたことを意味しますか?REQUIRES_NEWトランザクションをネストすると新しいセッションが作成されます。

これらの仮定は正しいですか?

答えて

0

PROPAGATION_REQUIRES_NEWは、影響を受けるトランザクションスコープごとに独立したトランザクションを使用します。その場合、基礎となる物理トランザクションは異なり、内部トランザクションのロールバック状態の影響を受けない外部トランザクションを使用して、独立してコミットまたはロールバックできます。 そして、新しいセッションを作成するのではなく、現在のセッションを使用して、伝播スコープで定義された新しいトランザクションを作成します。

関連する問題