Spring事务管理:-rollbackFor

rollbackFor属性用于控制出现何种异常类型,回滚事务。(默认情况下,只有出现RuntimeException才会回滚)  如:

@Transactional(rollbackFor = {Exception.class})//所有异常都会回滚
@Override
public void save(Emp emp) {
    //1.保存员工基本信息
    emp.setCreateTime(LocalDateTime.now());
    emp.setUpdateTime(LocalDateTime.now());
    empMapper.insert(emp);
    //2. 保存员工的工作经历信息
    //... 省略
}

@Transactional(rollbackFor = {Exception.class})强制对所有异常(包括受检异常和运行时异常)进行事务回滚。

注意事项

  1. 异常捕获影响‌:若异常被捕获并处理(如使用 try-catch),事务不会自动回滚,需通过 throw Exception 再次抛出异常才能触发回滚。 ‌
  2. 方法可见性限制‌:仅对 public 方法生效,protected/private 方法内的调用不会触发事务管理。 ‌
  3. 类内调用问题‌:同一类中的方法调用不会触发事务回滚,需通过外部调用或接口调用触发。
posted @ 2025-10-03 22:10  休玛  阅读(9)  评论(0)    收藏  举报