rollbackFor = Exception.class
时间: 2023-11-11 07:47:17 浏览: 79
在使用@Transactional注解时,是否需要加上rollbackFor = Exception.class取决于你的需求。
rollbackFor参数用于指定在哪些异常发生时需要回滚事务。如果不指定rollbackFor参数,那么默认情况下,只有发生RuntimeException及其子类异常时才会回滚事务,其他类型的异常都不会触发事务回滚。
所以,如果你希望在发生Exception及其子类异常时也回滚事务,那么就需要加上rollbackFor = Exception.class。这样,无论是RuntimeException还是Exception及其子类异常都会触发事务回滚。
综上所述,加上rollbackFor = Exception.class参数可以确保在发生Exception及其子类异常时也触发事务回滚。
相关问题
rollbackfor = exception.class
rollbackfor 是 Spring 事务管理中的一个属性,它表示在抛出指定的异常类型时,事务将回滚。例如,如果在方法中抛出了 Exception 类型的异常,事务将回滚,可以这样配置:@Transactional(rollbackFor = Exception.class)。
@Transactional(rollbackFor = Exception.class)与@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)的区别
@Transactional注解用于声明事务,在Spring中常用来保证方法的执行在一个事务内部,以确保数据的一致性和完整性。其中,rollbackFor参数指定哪些异常需要回滚事务,Propagation.REQUIRED指定了方法的事务传播行为。
区别如下:
- @Transactional(rollbackFor = Exception.class):这个注解只指定了回滚的异常类型,而没有指定传播行为,默认传播行为是Propagation.REQUIRED。
- @Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class):这个注解指定了方法的事务传播行为和回滚的异常类型。
简单来说,前者只指定了回滚异常类型,而后者不仅指定了回滚异常类型,还明确指定了事务的传播行为。
阅读全文