一、情形還原。
@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 則無法回滾