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 设计模式