当事务方法调用另一个类的事务方法时,尝试捕获不工作

时间:2021-07-25 13:20:51

标签: java spring-boot transactions try-catch

这是我的示例代码

ServiceA.java

@Service
@Transactional
public ServiceA {
    @Autowired
    private ServiceB serviceB;

    @Transactional(noRollbackFor = { ResourceNotFoundException.class })
    public void method1() {
            try {
                serviceB.method2();
            } catch (Exception e) {
                log.error(e.toString());
            }
    }
//Other methods
}

ServiceB.java

@Service
@Transactional
public class ServiceB {
    public void method2() {
        throw new ResourceNotFoundException();
    }
}

由于某种原因,try catch 没有完全处理异常,服务器仍然因“UnexpectedRollbackException:事务已被标记为仅回滚而静默回滚”而崩溃。

我在谷歌上搜索了一下并尝试了“noRollbackFor”,但仍然没有运气。我该如何正确处理?谢谢

0 个答案:

没有答案
相关问题