@Transactional(rollbackFor = Exception.class) 还是Throwable.class
时间: 2023-11-11 09:15:06 浏览: 274
spring-控制事物回滚
这个问题涉及到事务的回滚策略。在 Spring 中,可以使用 @Transactional 注解来控制事务的行为。其中,rollbackFor 属性用于指定哪些异常会触发事务的回滚操作。
当设置 rollbackFor = Exception.class 时,表示只有发生 Exception 及其子类的异常时,事务才会回滚。
而当设置 rollbackFor = Throwable.class 时,表示任何 Throwable 类型的异常都会触发事务的回滚操作,包括 Error、Exception 及其子类。
需要根据具体业务需求来选择合适的回滚策略。一般建议只回滚受检查异常(Exception 及其子类),而不回滚运行时异常(RuntimeException 及其子类)和错误(Error 及其子类)。这样可以避免不必要的回滚操作,并提高系统的性能和稳定性。
阅读全文