简单说一下@Transactional(rollbackFor = Exception.class)注解了解
时间: 2024-06-20 07:04:26 浏览: 275
Java注解@Transactional事务类内调用不生效问题及解决办法
@Transactional(rollbackFor = Exception.class) 是 Spring 框架中的一个事务管理注解,用于控制方法级别的事务处理。当一个标注了这个注解的方法发生指定类型的异常时,Spring 会自动回滚该事务,而不是继续执行后续操作。
1. **作用**: 它告诉 Spring,如果方法运行时抛出了 `Exception.class` 或其子类(即任何异常)的话,那么默认的事务策略是进行回滚(即撤销所有在当前事务中的更改),确保数据一致性。
2. **默认行为**: 如果不指定 `rollbackFor`,Spring 通常会自动回滚对于检查型异常(CheckedException)和运行时异常(RuntimeException)。指定 `Exception.class` 就指定了所有类型的异常都导致事务回滚。
3. **其他选项**:
- 如果你想只回滚部分异常,可以指定更具体的异常类型列表或使用 `@Rollback(value = true)`。
- 另外,还可以使用 `noRollbackFor` 属性指定哪些异常不会触发回滚。
阅读全文