SpringBoot事務@Transactional失效的常見問題之一

SpringBoot事務 | 未生效 | 無效 | 不生效 | 不回滾 | 不起作用
如果你使用了 @Transactional 和 @EnableTransactionManagement 沒有生效,那麼你看看在事務註解包含的方法內是否使用try-catch了。默認事務回滾對於try-catch的代碼不會生效,如果必須try-catch又要事務生效,則需要在catch塊內手動回滾。但是不推薦這麼寫,推薦Service層將異常往上拋,Controller層去捕獲處理。

關於手動回滾,你可以看這裏

TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//進行手動回滾

//設置回滾點
Object savePoint = TransactionAspectSupport.currentTransactionStatus().createSavepoint();
....
//回滾到savePoint
TransactionAspectSupport.currentTransactionStatus().rollbackToSavepoint(savePoint);

 

當然我遇到的只是事務不生效的原因之一,可能並不適用你所遇到的情況,僅作爲備忘使用,如果能恰巧幫到你那就呱唧一下

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