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})强制对所有异常(包括受检异常和运行时异常)进行事务回滚。
注意事项
- 异常捕获影响:若异常被捕获并处理(如使用
try-catch),事务不会自动回滚,需通过throw Exception再次抛出异常才能触发回滚。 - 方法可见性限制:仅对
public方法生效,protected/private方法内的调用不会触发事务管理。 - 类内调用问题:同一类中的方法调用不会触发事务回滚,需通过外部调用或接口调用触发。
浙公网安备 33010602011771号