spring事務遇到異常回滾問題

2021-09-12 18:47:46 字數 456 閱讀 6394

之前寫**時一直在service層處理異常(或者壓根不管異常- -!),直到前一段時間發現一段需要往資料庫插入資料的service層**在遇到異常時,資料庫的資料竟然沒有被回滾掉,然後看spring的事務配置的也沒有問題,測試別的service方法,發現可以正常回滾,然後對比+請教後發現了問題,原來是沒有回滾的那段**是在service層中處理了異常,導致spring事務沒有正常回滾…遂結合度娘總結出以下幾點:

1.如果對資料庫沒有改動(增刪改)的service**可以按照實際的業務需求在內部處理異常,不丟擲異常也可以

2如果對資料庫有改動的service**則需要丟擲異常或者在catch中手動回滾異常,兩種方法如下:

丟擲異常:

catch (exception e)
手動回滾異常:

catch (exception e)

spring 中異常回滾

springmvc中異常與回滾說明 spring 4.版本 1.預設runtimeexception型別異常會回滾,不管方法上是否加 throw exception 程式中沒有往上層丟擲異常 中也沒有捕獲異常,發生異常時事務會回滾。2.如果想exception型別異常也回滾,需要設定 transac...

Spring事務異常回滾,捕獲異常不丟擲就不會回滾

預設spring事務只在發生未 獲的 runtimeexcetpion時才回滾。spring aop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲到方法的異常,才能進行回滾,預設情況下aop只捕獲runtimeexception的異常,但可以通過 配置來捕獲特定的...

Spring事務異常回滾,捕獲異常不丟擲就不會回滾

下面這種情況,使用了catch捕獲了異常,spring事務 不會發生回滾 try catch exception e 預設spring事務只在發生未 獲的 runtimeexception 時才回滾。springaop 異常捕獲原理 被攔截的方法需顯式丟擲異常,並不能經任何處理,這樣aop 才能捕獲...