Spring 事务失效
场景1:

代码:

执行结果:异常抛出,但是数据没有回滚。
代理对象调用 b() 方法 没有开启事务:

普通对象调用a() 方法开启事务:

在b() 方法上加入事务注解,开启事务就没问题:

在a() 方法上加入 @Transactional(propagation = Propagation.NEVER) ,也没有排除异常,sql 正常插入。
Propagation.NEVER 表示该方法不应该在事务上下文中执行。如果当前存在事务,则抛出异常;如果没有事务,则正常执行。
使用代理对象调用有事务注解的方法,事务注解才会生效、

本文来自博客园,作者:chuangzhou,转载请注明原文链接:https://www.cnblogs.com/czzz/p/18787133

浙公网安备 33010602011771号