我终于明白了这个问题:
methodA() { methodB()}@Transactional(noRollbackFor = Exception.class)methodB() { ... try { methodC() } catch (...) {...} log("OK");}@TransactionalmethodC() { throw new ...();}发生的事情是,即使
methodB具有正确的注释,
methodC也没有。抛出异常后,第二个异常
@Transactional将第一个事务标记为仅回滚。



