閱讀51 返回首頁    go 京東網上商城


Spring的事務管理對何種異常進行回滾

 

一、結論

Spring的事務管理默認隻對出現運行期異常(java.lang.RuntimeException及其子類)進行回滾。

如果一個方法拋出Exception或者Checked異常,Spring事務管理默認不進行回滾。

關於異常的分類請參看本博客的《Java異常分類》https://blog.csdn.net/woshixuye/article/details/8230407

 

 

二、改變默認方式

在@Transaction注解中定義noRollbackFor和RollbackFor指定某種異常是否回滾。

@Transaction(noRollbackFor=RuntimeException.class)

@Transaction(RollbackFor=Exception.class)

這樣就改變了默認的事務處理方式。

 

 

三、啟示

這就要求我們在自定義異常的時候,讓自定義的異常繼承自RuntimeException,這樣拋出的時候才會被Spring默認的事務處理準確處理。

 

 

最後更新:2017-04-03 16:49:33

  上一篇:go android ListView中Checkbox實現單選,全選,全不選功能——1
  下一篇:go 一位三年程序員的經驗總結