我有一个服务

public class ServiceA {

    @Transactional
    public void a() {
        ...
        serviceB.b()
        ...
    }
}


调用另一种服务的方法

public class ServiceB {

    @Transactional
    public void b() {
        ...
        graphRepository.save(..)
        ...
    }
}


调用GraphRepository的方法。

如果在执行GraphRepository方法期间没有任何问题,everithigs会很好地工作,但是如果GraphRepository中发生异常,则回滚将不起作用,并且所有对远程数据库的调用都将被阻止。

如果我删除了b()上的Transactional注释,即使GraphRepository中发生异常,everithins也可以正常工作。

我无法解释这种行为。

你能帮助我吗?

最佳答案

感谢Luanne和她的评论,我解决了这个问题

这是一个错误,已在neo4j-ogm 1.1.5-SNAPSHOT中解决

08-06 05:27