关于事务回滚

关于事务回滚

http://img1.sycdn.imooc.com//climg/5cedf5b70001168a07650566.jpg

前面课程学的,方法上添加了@Transactional后,整个方法不就是一个事务,有一步出错整体就会回滚。

跟后面这个RuntimeException有什么关系?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕阿满 2019-05-29 16:45:27

同学你好,这里是只有抛出RuntimeException异常或者继承了RuntimeException的异常才能使事务终止并回滚,如果只是抛出了非RuntimeException异常,并不会终止事务,所以也不会回滚。

祝:学习愉快~

  • 提问者 三又十二分之四 #1
    那我贴的前面做oa系统那位老师的代码里面没有抛出异常,如果出现了bug事务会回滚吗?
    2019-05-29 16:48:15
  • 如果运行过程中抛出了RuntimeException及其子类异常,事务会回滚的。祝:学习愉快~
    2019-05-29 18:21:40
提问者 三又十二分之四 2019-05-29 14:41:15

我想表达的意思是,比如前面做oa系统时,老师添加了事务注解后,业务层没有抛出异常的代码,方法也具有事务性。

http://img1.sycdn.imooc.com//climg/5cee28fd0001a63d14160687.jpg

http://img1.sycdn.imooc.com//climg/5cee28fd0001318112930561.jpg


而这里,是因为业务层方法里会抛出异常,所以会打破事务原子性吗?为了不打破原子性,所以又不用普通的Exception ,而用RuntimeException,就不会打破事务原子性了。

好帮手慕阿满 2019-05-29 13:33:35

同学你好,当thow new RuntimeException异常后,表示事务执行有误,就会回滚事务。

如果我的回答解决了你的疑惑,请采纳。祝:学习愉快~

  • 提问者 三又十二分之四 #1
    我还有点疑问,写在回答里了,麻烦老师再看下。
    2019-05-29 14:42:16
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师
插入代码