Spring 事务失效

场景1:

代码:

执行结果:异常抛出,但是数据没有回滚。

代理对象调用 b() 方法 没有开启事务:

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

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

在a() 方法上加入 @Transactional(propagation = Propagation.NEVER) ,也没有排除异常,sql 正常插入。

Propagation.NEVER 表示该方法不应该在事务上下文中执行。如果当前存在事务,则抛出异常;如果没有事务,则正常执行。

使用代理对象调用有事务注解的方法,事务注解才会生效、

posted @ 2025-03-22 21:11  chuangzhou  阅读(9)  评论(0)    收藏  举报