如果我们在用 @Transactional
注解注解的方法中捕获异常,出现异常会回滚吗?
@Transactional(readOnly = false, propagation = Propagation.REQUIRED, rollbackFor=Throwable.class)
public void yearEndProcess() {
try {
// try block
} catch (Throwable throwable) {
// catch block
}
}
原文由 Kedar Parikh 发布,翻译遵循 CC BY-SA 4.0 许可协议
例如
如果方法中存在异常
doStuff
事务不会回滚。To rollback the exception programmatically
,我们可以做如下的事情。声明式方法
编程回滚
您需要从
TransactionAspectSupport
调用它。强烈建议您尽可能使用
declarative approach
到rollback
。Programmatic rollback
仅在绝对需要时才可用。