@transactional(rollbackfor=exception.class)
时间: 2023-04-24 21:05:28 浏览: 111
@transactional(rollbackfor=exception.class) 是一个Spring注解,用于在方法上添加事务控制。其中,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):这个注解指定了方法的事务传播行为和回滚的异常类型。
简单来说,前者只指定了回滚异常类型,而后者不仅指定了回滚异常类型,还明确指定了事务的传播行为。
@Transactional(rollbackFor = Exception.class)
在使用注解@Transactional(rollbackFor = Exception.class)时,它可以用于回滚所有的异常,包括RuntimeException及其子类抛出的异常,以及Exception异常。 默认情况下,@Transactional注解只会回滚RuntimeException及其子类抛出的异常。 如果需要回滚Exception异常,可以显式地使用@Transactional(rollbackFor = Exception.class)注解来声明。 所以,如果你在进行增删改操作时,建议使用@Transactional(rollbackFor = Exception.class)来确保在出现任何异常时都能进行回滚操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
阅读全文