在 Spring 中,@Transactional 默认只对 RuntimeException(运行时异常)和 Error 进行回滚。
手动设置 rollbackFor = Exception.class 更安全,在大多数业务场景下,建议显式设置 rollbackFor = Exception.class,即只要方法执行失败(无论什么异常),都回滚,保证数据一致性。
@Transactional(rollbackFor = Exception.class) // 只要方法执行失败(无论什么异常),都回滚
public void businessMethod() throws Exception {
// 你的业务逻辑
}