阅读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 一位三年程序员的经验总结