首页 新闻 会员 周边

java关于springboot的事务回滚问题

0
悬赏园豆:5 [已解决问题] 解决于 2019-06-28 14:18

服务层A方法调用B方法

B方法调用C方法

C方法调用D方法

D方法调用E方法

ABCDE方法均在同一个类中,但只有B方法加了事务

E方法报错,事务为什么不回滚?????

五柳先生柳三变的主页 五柳先生柳三变 | 菜鸟二级 | 园豆:215
提问于:2019-06-26 18:08
< >
分享
最佳答案
0

因为springboot只认最外层方法有没有@transactional
假如A有事务,回滚,否则不回滚

收获园豆:5
草莓罐头 | 菜鸟二级 |园豆:204 | 2019-06-27 17:36

我明白了,我这种调法是相当于在A方法内部加了个事务。
如果控制层直接调B方法,E抛异常应该是会回滚的

五柳先生柳三变 | 园豆:215 (菜鸟二级) | 2019-06-28 14:17
其他回答(1)
0

本质原因是在你调用对象第一个方法的时候才会触发AOP,也就是A方法有事务,你的调用才是有事务的。
然后如果是同一个方法的调用都不会触发AOP,也就不会有事务的织入。
所以你的整个流程是完全没有事务的。

邀月入梦 | 园豆:215 (菜鸟二级) | 2020-03-09 20:51
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册