服务层A方法调用B方法 B方法调用C方法 C方法调用D方法 D方法调用E方法 ABCDE方法均在同一个类中,但只有B方法加了事务 E方法报错,事务为什么不回滚?????
因为springboot只认最外层方法有没有@transactional 假如A有事务,回滚,否则不回滚
我明白了,我这种调法是相当于在A方法内部加了个事务。 如果控制层直接调B方法,E抛异常应该是会回滚的
本质原因是在你调用对象第一个方法的时候才会触发AOP,也就是A方法有事务,你的调用才是有事务的。 然后如果是同一个方法的调用都不会触发AOP,也就不会有事务的织入。 所以你的整个流程是完全没有事务的。