如果第二笔交易回滚(即method3()),将会发生什么?第一次交易会回滚吗?
//没有交易方法
method1()
{
try{
method2(); // transactional
method3(); // transactional and fails due to exception
}
catch {
return "error message";
}
最佳答案
否,如果method3()
失败,则method2()
的事务将不会回滚,因为它们是2个不同的事务。
注意:即使method1是事务性的,它也不能确保整个操作(方法2 + method3)的原子性,因为您正在捕获异常。