问题:
在一个serviceImpl类中,事务之间的嵌套调用,第二个事务设置传播行为为:如果当前有事务,则挂起当前事务,创建一个新事务;如果当前没有事务,则直接创建一个新事务。然后按理说第一个事务方法内发生异常不会影响第二个事务方法的,但是第一个事务方法发生异常后第二个方法居然也回滚了。怎么回事??
然后我不用嵌套调用,我直接用@Autowird注入进来的serviceimpl去调用方法,正常了。
原因:原来是spring事务是用动态代理实现的,但是方法的调用还是用被代理类去调用,这个被代理类调用第二个方法的时候,就不会触发动态代理了。