gpt4 book ai didi

java - 在 spring-data-neo4j 中使用 @Transactional 的问题

转载 作者:行者123 更新时间:2023-12-04 05:13:57 25 4
gpt4 key购买 nike

我正在混合 spring-data 和 CXF 来创建一个创建 neo4j 节点的 RESTful 端点。我的结构是一组接口(interface),它定义了面向公众的方法,我的实现有几个私有(private)方法,由我的公共(public)方法调用。

我的私有(private)方法有 spring-tx 的 @Transactional在他们身上,当我尝试从我的公共(public)方法中调用这些时,我得到一个 org.neo4j.graphdb.NotInTransactionException .下面是一个 GitHub 项目,用于显示我的配置,您也可以运行它来查看问题所在:

https://github.com/NicholasAStuart/broken-spring-neo4j-cxf.git

谁能帮我?我已按照 spring-data-neo4j 文档中的步骤进行操作,但我似乎无法使其正常工作,有人可以帮助我吗?

最佳答案

@Transactional注释不适用于私有(private)方法。

来自 Spring documentation :

When using proxies, you should apply the @Transactional annotation only to methods with public visibility. If you do annotate protected, private or package-visible methods with the @Transactional annotation, no error is raised, but the annotated method does not exhibit the configured transactional settings. Consider the use of AspectJ (see below) if you need to annotate non-public methods.



您也许可以使用 aspectj模式以在任何类型的方法上启用此行为。

关于java - 在 spring-data-neo4j 中使用 @Transactional 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543862/

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