51
京東網上商城
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
上一篇:
android ListView中Checkbox實現單選,全選,全不選功能——1
下一篇:
一位三年程序員的經驗總結
Java多線程(二)、啟動一個線程的3種方式
敏捷開發:產品思維項目管理免費講座
poj 1828 Monkeys' Pride 模擬
Android EditText禁止輸入中文字符
AliSQL 20171010版本發布 Sequence兼容PostgreSQL/Oracle語法和升級TLSv1.2
[emerg]: bind() to 0.0.0.0:80 failed (98: Address already in use) 問題思考?
常見的幾個Qt編程問題的處理
中國軟件人,我為你哭泣
如何更改linux下的Apache端口號
傳統金融煥發“新”機 新金融將如何存在