Spring自治事务-执行次要事务,然后抛出主要事务



我在处理Spring事务时遇到问题。我需要我的catch块在分叉/自主事务上保持一些状态,然后抛出一个异常来回滚对主事务所做的一切。

@Transactional(
propagation = Propagation.REQUIRED,
isolation = Isolation.READ_COMMITTED,
rollbackFor = {Exception.class})
public void createApplication() {
try {
saveState(0);
} catch(Exception e) {
saveState(1);
throw e;
}
}
@Transactional(propagation = Propagation.REQUIRES_NEW)
public void saveState(Integet stateId) {
...
}

此设置的问题是所有内容都会回滚(如如何在春季启动中部分回滚数据中所述,错误将持续存在(。有没有一种方法可以在Spring中分叉事务,或者这种方法根本不正确?

我还尝试过配对传播。需要传播。嵌套无效。

这不起作用,因为您在同一类中有第二个@Transactional方法请记住,只有当调用通过代理时,@Transactional才起作用只要将这个saveState移到另一个类中,我相信它会起作用,因为您的其余代码都是完全正确的。

最新更新