關於Spring事務回滾的問題

2021-06-09 13:11:18 字數 640 閱讀 6286

在spring的配置檔案中,如果資料來源的defaultautocommit設定為true了,那麼方法中如果自己捕獲了異常,事務是不會回滾的,如果沒有自己捕獲異常則事務會回滾,如下例

比如配置檔案裡有這麼條記錄:

....

那麼現在有兩個情況

情況1:如果沒有在程式中手動捕獲異常

@transactional(rollbackfor = )

public void test() throws exception

情況2:如果在程式中自己捕獲了異常

@transactional(rollbackfor = )

public void test() catch (exception e)

}

現在如果我們需要手動捕獲異常,並且也希望拋異常的時候能回滾腫麼辦呢?

下面這樣寫就好了,手動回滾事務:

@transactional(rollbackfor = )

public void test() catch (exception e)

}

關於spring容器事務回滾

註解方式宣告事務,該事務宣告的範圍是service中的方法,而一般的事務宣告時不是宣告在 業務邏輯方法上的,而是宣告在單一的資料庫操作方法上的 transactional public class userserviceimpl implements userservice,new int thro...

spring事務回滾

註解方式宣告事務,該事務宣告的範圍是service中的方法,而一般的事務宣告時不是宣告在 業務邏輯方法上的,而是宣告在單一的資料庫操作方法上的 transactional publicclassuserserviceimplimplementsuserservice,newint thrownewe...

spring事務回滾

1 核心 只有丟擲 runtimeexception 才會回滾,其他情況都不會 2 基本 1.spring事務配置 advice ref txadvice 2.service層 public class personservice 3.sqlmap values name age version s...