@Transactional的幾種失效場景

前言

在使用事務的時候,偶爾會出現失效的情況,往往會讓人摸不着頭腦,明明已經加了@Transactional了啊,以下整理了幾種可能導致事務失效的場景。

1、同一個類裏的方法調用

加事務的方法不會被spring aop所代理的對象管理,所以無效。

2、方法不是public修飾

computeTransactionAttribute方法在獲取Transactional註解信息時, 會檢查目標方法的修飾符是否爲 public,不是 public則不會獲取@Transactional 的屬性配置信息

3、方法中使用try catch

如果catch了異常 處理完沒有拋出 那麼也會導致事務失效

4、rollbackFor設置原因

rollbackFor設置了之後,事務只會在指定的設置下生效

5、數據庫引擎不支持事務

比如 mysql的 innodb支持 但是myisam不支持

6、待補充

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