有什么作用我们在写代码的时候,特别是使用事务注解的时候,经常会加上@Transaction,或者@Transaction(rollbackFor=Exception.class),但是没想到加不没什么区别,rollbackFor里面可以写哪些值。今天我们就来明确一下什么是@Transaction是spring管理事务的注解。如果一个方法需要更新数据,那么就需要加上这个注解,否则无法保存成功。在这种情况下,默认情况下什么都不写。rollbackFor的默认值为UncheckedException(mark一下,什么是UncheckedException,下一篇学习),包括RuntimeException和Error。当我们直接使用@Transactional而不指定rollbackFor时,运行时会默认回滚Exception及其子类,即RuntimeException及其子类,如果出现Exception异常则不会回滚,因为Exception是RuntimeException的父类.指定异常,我们一般指定rollbackFor=Exception.class,意思是如果是Exception类型的异常,就会回滚。Exception是所有异常的父类,所以可以回滚。异常关系图如下本文由博客发布平台OpenWrite发布!
