如果第二笔交易回滚(即method3()),将会发生什么?第一次交易会回滚吗?

//没有交易方法

method1()
{
  try{
       method2(); // transactional
       method3(); // transactional and fails due to exception
  }
  catch {
    return "error message";
  }

最佳答案

否,如果method3()失败,则method2()的事务将不会回滚,因为它们是2个不同的事务。

注意:即使method1是事务性的,它也不能确保整个操作(方法2 + method3)的原子性,因为您正在捕获异常。

10-04 18:55