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端口号
传统金融焕发“新”机 新金融将如何存在