throws 异常和 @Transaction 回滚问题(转)

一、情形还原。

@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 则无法回滚

猜你喜欢

转载自www.cnblogs.com/zrui-xyu/p/12101798.html