檢查以下幾點:
1.資料庫是否為innodb引擎
2.配置檔案中是否開啟
transaction:3.是否在啟動類中加入註解rollback-on-commit-failure: true
@enabletransactionmanagement4.測試問題:
@transactional註解必須和丟擲異常的位置在一起
在service中加入的事務註解,手動丟擲異常時要在service中丟擲,才能看到效果
如果想在controller中,呼叫兩個不同service的方法,開啟事務回滾,則需要在controller也加入@transactional註解
5.@transactional註解預設只能攔截runtimeexception和error,如果自定義的exception,需要如下設定
@transactional(rollbackfor = exception.class)
springboot事務手動回滾
專案中的事務,我們一般都是使用註解式事務,在service層加上 transactional,或者加在具體方法上。但有的時候我們需要手動回滾事務,如以下兩種情況 1 try.catch到異常之後需要回滾事務。如阿里巴巴開發手冊中就提到 強制 有 try 塊放到了事務 中,catch 異常後,如果需要...
SpringBoot 事務回滾失敗
要麼全部成功,要麼全部失敗,不允許部分成功部分失敗。serviceimpl類內部方法的呼叫。addstudent 方法能夠執行,updatestudent 方法因為有錯誤會丟擲異常,但是事務回滾失敗。直接呼叫方法,實際上是通過this呼叫,也就是直接呼叫了方法,而不是通過spring上下文獲得 類,...
SpringBoot手動新增事務回滾
org.springframework.boot spring boot starter jdbc 新增依賴成功後,事務就預設開啟了,只需要在需要的方法和類上新增註解 transactional上就可以 注意 當新增在類上,說明此類的public的方法都行事務管理 transactionaspect...