Spring 事务失效
场景1:
代码:
执行结果:异常抛出,但是数据没有回滚。
代理对象调用 b() 方法 没有开启事务:
普通对象调用a() 方法开启事务:
在b() 方法上加入事务注解,开启事务就没问题:
在a() 方法上加入 @Transactional(propagation = Propagation.NEVER) ,也没有排除异常,sql 正常插入。
Propagation.NEVER 表示该方法不应该在事务上下文中执行。如果当前存在事务,则抛出异常;如果没有事务,则正常执行。
使用代理对象调用有事务注解的方法,事务注解才会生效、
本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/18787133