問題:
在一個serviceImpl類中,事務之間的嵌套調用,第二個事務設置傳播行為為:如果當前有事務,則掛起當前事務,創建一個新事務;如果當前沒有事務,則直接創建一個新事務。然后按理說第一個事務方法內發生異常不會影響第二個事務方法的,但是第一個事務方法發生異常后第二個方法居然也回滾了。怎么回事??
然后我不用嵌套調用,我直接用@Autowird注入進來的serviceimpl去調用方法,正常了。
原因:原來是spring事務是用動態代理實現的,但是方法的調用還是用被代理類去調用,這個被代理類調用第二個方法的時候,就不會觸發動態代理了。