关于java:Transaction-的rollbackFor作用是什么

咱们在写代码的时候,特地是用到事务注解的时候,往往就是加一下@Transaction ,或者@Transaction (rollbackFor = Exception.class),却没有想过加和不加有什么区别,rollbackFor能够写哪些值。
明天咱们就把这个讲清楚

是什么

@Transaction是spring治理事务的注解,如果某个办法须要更新数据,那么就须要增加该注解,否则就无奈保留胜利。

默认什么都不写

这种状况,rollbackFor的默认值为UncheckedException (mark, 什么是UncheckedException, 下一篇文章学习), 包含RuntimeException和Error
当咱们间接应用@Transactional不指定rollbackFor时,默认会回滚运行时异样及其子类,也就是RuntimeException及其子类,如果产生了Exception异样就不会回滚,因为Exception是RuntimeException的父类。

指定异样

咱们个别都指定rollbackFor= Exception.class, 标识如果是Exception类型的异样都会回滚,Exception是所有异样的父类,这样就都能回滚了。

异样关系图如下

本文由博客一文多发平台 OpenWrite 公布!

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理