一個需求,最開始打算用多線程分別插入多個庫,埋了 int a=1/0測試回滾,結果發現並沒有回滾
如果要用手動控制事務的提交,那就得自己起多個事務,手動寫sql,手動提交回滾,代價比較大。有什麼好方法?
後面改成單線程調用service的@Transactional方法,結果踩坑沒回滾
原因:線程調用自身類的方法,並不會用到spring aop的代理類,所以只是執行了一個普普通通的方法。
解決方案:用@Resource注入一個service進來,再用線程去調用這個service的方法,這樣就可以了