gpt4 book ai didi

java - 如何从事务方法调用非事务方法

转载 作者:行者123 更新时间:2023-11-30 08:02:05 35 4
gpt4 key购买 nike

我有一个事务性方法,还有一个非事务性私有(private)方法,可以执行一些数据库更新。

我需要从事务方法调用此私有(private)方法,但如果出现异常,非事务方法的更新也会回滚。

如何使非事务方法从私有(private)方法提交更新,因为它是从事务方法调用的,并且在发生异常的情况下其更改也会回滚

@Transactional
public Result createTransaction(){
try{
//do someting
}Catch (Exception e){
markAsFailed();
throw new CtxException("customer.notfound");
}
}


private void markAsFailed(){
//do db update
}

最佳答案

只是在有人需要的情况下提供答案,需要注意的重要一点是需要从非事务方法调用的事务方法应该位于单独的 spring bean 中,如 JB Nizet 中提到的因为 spring 使用代理来实现此行为,并且必须在另一个类中定义该方法,以便 spring 应该能够触发事务。一旦进入类(class),您将不会再次通过代理

关于java - 如何从事务方法调用非事务方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31755159/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com