首页 > 其他 > 详细

@Transactional 失效

时间:2020-05-08 22:39:52      阅读:75      评论:0      收藏:0      [点我收藏+]

今天开发功能遇到一个坑,给一个类中方法配置事务

@Transactional(propagation = Propagation.REQUIRED,rollbackFor = RuntimeException.class)   ,让它遇到运行时异常回滚事务,但是事务一直没有生效,数据还是入了库。
我们看问题代码:

技术分享图片

技术分享图片

以上代码是controller层的importData调用service层的addeEmps带事务的方法。我们在server层用到了try,finally。这个不是service层内部无事务方法调用它,抛的异常也是Error和RuntimeException之一,
方法也是public修饰的,没有道理不生效啊?

但是,但是...它就是不生效!

经过反复调试,问题出在了service层的try,finally{}上,try{}里面虽然抛了异常,但是事务不会回滚,由于是做了以下改造,我们把try,catch的操作放在了controller层:

技术分享图片


技术分享图片

经过多次试验,事务正常回滚!!!

 

 

@Transactional 失效

原文:https://www.cnblogs.com/crelle/p/12852894.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!