这是我在必须维护的应用程序中遇到的问题:
我有一个带有注释的第一类@Transactional(rollbackFor = CustomExceptionA.class)
然后在下面的代码中我调用一个@Transactional(noRollbackFor = CustomExceptionB.class)
NB 的方法:CustomExceptionA
或者CustomExceptionB
只有一个共同的祖先是Exception
.
当然,当我执行代码时,会引发一个异常,该异常既不是类型CustomExceptionA
,CustomExceptionB
也不是它们的子类。
所以问题很简单:
在这种情况下,交易会发生什么?它承诺吗?它回滚吗?它是否保持未完成状态等待应用程序执行某些操作(这实际上是一个答案,可以解释此应用程序中看到的一些丑陋的事情)?而且:为什么?