关于Spring事物回滚

现象:

创建事物方法,显示抛出异常throw new Exception();或者catch Exception,事物不会回滚;

原因:

Spring事物拦截,需要被拦截方法显示抛出异常,才能回滚,但Spring默认拦截RuntimeException和Error,所以没有拦截到显示抛出的Exception。

解决办法:

1:针对需要事物控制的代码异常处理抛出RuntimeException或者子类异常;

2:手动事物回滚:TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();//设置手动回滚

 

只对想要进行事物控制的代码进行处理。

posted on 2017-08-23 11:38  ViiJay  阅读(158)  评论(0编辑  收藏  举报

导航