記spring線程調用事務不回滾的坑

一個需求,最開始打算用多線程分別插入多個庫,埋了 int a=1/0測試回滾,結果發現並沒有回滾

如果要用手動控制事務的提交,那就得自己起多個事務,手動寫sql,手動提交回滾,代價比較大。有什麼好方法?

後面改成單線程調用service的@Transactional方法,結果踩坑沒回滾

原因:線程調用自身類的方法,並不會用到spring aop的代理類,所以只是執行了一個普普通通的方法。

解決方案:用@Resource注入一個service進來,再用線程去調用這個service的方法,這樣就可以了

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章