spring boot 如何開啟事務


1.Spring boot是默認啟動事務的,只需要在(service層中添加)類或者方法上添加@Transactional注解即可(很簡單呢!)

a.類上面

 

b.方法上

 

 如果事務不生效 可能有以下原因

1、首先要看數據庫引擎是否支持注解,mysql默認引擎INNODB是支持的,但MYISAM是不支持的;
2、注解只能被應用到public方法上, 其它方法上不會報錯,但不生效;
3、默認情況下只會對運行期異常(java.lang.RuntimeException及其子類)和 Error 進行回滾;

 

 

4、如果是其它異常,可以顯形標記在參數里,下圖標紅的就是先進行查看用戶有指定的異常,如果沒有,就默認上一條的異常,參數格式:@Transactional(rollbackFor={Exception.class})

 

 


5、是否進行了異常捕獲,如果使用了try--catch,事務是肯定不生效,也就是系統沒有接收到異常場景;

關於使用異常捕獲,還想事務生效,可以有幾種策略解決相關難題:

    1)手動回滾,推薦方式

 

 


  2)在catch里拋出一個runntimeException

 

 



3)  將異常寫入注解參數里面,也需要拋出來,原理跟方法2一樣的,只是重新指定了事務回滾的異常類型

 

————————————————
版權聲明:本文為CSDN博主「sailor125」的原創文章,遵循CC 4.0 BY-SA版權協議
原文鏈接:https://blog.csdn.net/sailor125/java/article/details/90610927

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM