采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
.我在IDEA中是没法实现的,会报错..您的测试是这样的,抛出exception,然后发现没有导致回滚.其实,您的代码是捕获了exception的,您在catch块里又抛出了exception,我觉得这里是不是就把这个异常吞掉了,而没有抛出呢?才导致没有回滚.我在IDEA中敲这个代码,发现会报错,
shopOperationException是继承自exception的
同学好,非常抱歉这两周要回老家办事,只能通过手机回复。现在查不到资料翔仔也不太确定。同学可以帮忙测试一下,然后告诉下翔仔结果:) 即可以这样,在@Transactional标签的方法里 先往数据库插入信息 判断如果插入成功 在成功的if里加入1/0,这个会抛runtimeexception。然后看看会不会回滚,即方法执行成功后显示插入成功但是数据并没有真正插入到数据库里。之后再注释掉1/0 然后改成new file(输入一个不存在的文件路径),这样会抛非runtime exception 然后再做同样的验证。辛苦同学啦,这方面当时由于要讲的知识点太多确实没有做太深入了解,希望同学能理解,赞同学的深入挖掘能力
经过测试,我发现,非RuntimeException也能导致回滚,我刚才产生了一个NullPointException,事务成功回滚,数据库中并没有插入数据.但是语句已经生成并执行成功.还有就是,查阅资料,发现@Transactional可以指定对哪些异常进行回滚操作,它有rollbackfor属性.
nullpointer是runtimeexception呢 非runtime的是filenotfoundexception 所以才叫同学试这个
哦,那我再试试……
登录后可查看更多问答,登录/注册
SSM商铺V1.0,解决毕设痛点;SpringBoot商铺V2.0,满足工作刚需
1.9k 47
1.8k 41
2.5k 40
1.8k 39
1.5k 37