多层嵌套事务带来的问题
```Transaction rolled back because it has been marked as rollback-only
```
多层嵌套事务中, 如果使用的是默认的事务传播方式, 那么在内层事务抛出异常的时候, 外层事务捕捉并正常执行完毕, 就会报出rollback-only异常
问题在于spring所使用的默认事务传播级别是PROPAGATION_REQUIRED, 然后在方法中出现了事务嵌套,
但是内层的事务出错了, 在内层事务结束时, spring会把事务标记为rollback-only, 如果外层事务也捕获了异常,
那么就会把代码执行完, 然后在提交事务时发现事务已经被标记为rollback-only, 但是方法却正常执行了, 这个时候就会抛出对应异常 注解类事务是基于AOP代{过}{滤}理的 当在同一个类定义了2个事务,互相调用 第二个事务会不执行 还是使用第一个事务 是的。只要在第一个server上加@Transactional就够了 前两天面试还被问了类似的问题,蒙蔽
页:
[1]