该项目使用了 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 块中做到这一点?
//----------------------------------------//
其实我的问题是:spring如何确保事务在finally块中提交。Spring 会在 finally 块中获得新的连接吗?