2011-07-09 26 views
13

@Transactionalアノテートされたメソッドを春にネストすることは可能ですか? )私はBにロールバック場合(このような場合に何が起こる入れ子の@Transactional

@Transactional 
public void a() { 
    obj.b(); 
} 

@Transactional 
public void b() { 
    // ... 
} 

)及び(にロールバック:このような何かを考えてみましょうか?方法b()

答えて

24

@Transactionalアノテーションは、したがって方法a()によって呼び出されたメソッドがトランザクションになり、なぜならデフォルト@TransactionalREQUIREDの伝播を有することにより、必要とされません。メソッドa()によって呼び出されたメソッド内で新しいトランザクションを開始する場合は、伝播ルールを変更する必要があります。 Transaction Propagationについて読む