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 05:40:35
上一篇:
Android開發14——監聽內容提供者ContentProvider的數據變化
下一篇:
一位三年程序員的經驗總結
哪種編程語言最吃香?
使用ViewPager+Fragment來實現帶滾動條的多屏滑動-IndicatorFragmentActivity
近百年前寶潔發明“肥皂劇”,阿裏要創造“種草劇”!
oracle學習筆記(一)之邏輯結構和連接
使用jsp自定義標簽庫實現數據列表顯示模擬cms4j中的標簽庫效果
PostgreSQL 按需切片的實現(TimescaleDB插件自動切片功能的plpgsql schemaless實現)
poj 3259 Wormholes 最短路
hfs-delimited and lfs-delimited
如何利用機器學習預測房價?
C++ Bridge 設計模式