一、情形還原。
@Transactional(rollbackFor=Exception.class)
public void method(){
// 會回滾
throw new Exception("");
// 會回滾
throw new RuntimeException("");
}
@Transactional(rollbackFor=RuntimeException.class) 或者 @Transaction()
public void method(){
// 不會回滾
throw new Exception("");
// 會回滾
throw new RuntimeException("");
}
二、原因。
rollbackFor 默認是 RuntimeException,手動拋出 Exception 則無法回滾