プロジェクトはSpring+Hibernateを使用しました
サンプルコード:
public void method(){
try{
dao.saveA(entityA);
//condition may be throw RuntimeException;
dao.saveB(entityB);
}catch(RuntimeException e){
throw e;
}finally{
dao.saveC(entityC)
}
}
最後に、entityCだけがテストでデータベースに保存されます。
同じトランザクションでsaveA、saveB、saveCをコミットするべきではないと思います。
この場合、entityCがコミットされる理由を知りたいです。
Springはfinallyブロックでこれをどのように行いますか?
// ------------------------- //
実際、私の質問は次のとおりです。finallyブロックでコミットされたトランザクションをどのように春に保証するか。Springはfinallyブロックで新しい接続を取得しますか?