咱们在写代码的时候,特地是用到事务注解的时候,往往就是加一下@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 公布!