gpt4 book ai didi

neo4j - 为 Neo4j 配置 TypeRepresentationStrategy

转载 作者:行者123 更新时间:2023-12-04 05:44:49 24 4
gpt4 key购买 nike

我们目前正在使用 neo4j 开发一个 Java 项目。

我们使用 Spring Data Neo4j并从 Good Relationships 中获取大部分信息书。

该文档指出,图中的标准实体类型表示为 IndexingNodeTypeRepresentationStrategy .

对于我们的项目,我们更喜欢带有子引用节点的那个。

在使用存储库时,我们如何配置 neo4j 以使用此策略。我们从 HelloWorld 示例开始,因此我们目前有一个存储库接口(interface),如下所示:

public interface IWebsiteGraphRepository extends GraphRepository<Website> {}

此外,我们还有我们的节点实体(我省略了大部分不相关的代码):
@NodeEntity
public class Website {
...
}

谁能提供一个小例子来说明如何设置 TypeRepresentationStrategy ?

这可以在 Spring 配置中完成吗?

配置将是:
<context:annotation-config />
<tx:annotation-driven mode="aspectj" transaction-manager="neo4jTransactionManager" />
<context:component-scan base-package="my.base">
<context:exclude-filter type="annotation"
expression="org.springframework.stereotype.Controller" />
</context:component-scan>
<neo4j:config storeDirectory="target/neo4j-db" />
<neo4j:repositories base-package="my.base.packages.repositories" />

编辑:

在另一个 session 之后,我终于能够让它工作了!我开始基于 Michael Hungers 的回答,但无法创建 Bean。我发现他的例子可能来自: gitHub .但是,这仍然对我不起作用。我开始深入研究 TypeRepresentationStrategyFactory 类的源代码。我发现, Strategy 是一个私有(private)枚举。这是我试图提供的第二个构造函数 arg。在我的项目中,它从未将其检测为 Strategy 类型。

首先我有点怀疑,因为战略是私有(private)的。我的意思是,我什至无法在代码中实例化 TypeRepresentationStrategyFactory,因为它找不到类型 Strategy。我很快发现,据说 Spring 可以做这样的事情: Beans with private constructor .

最后我不得不调整 Michaels 解决方案,因为它没有识别构造函数参数。不管我做了什么。也许这是我的设置,我真的不知道。但最后我想出了创建 bean from the private enumeration 的解决方案并将其作为对构造函数的引用:
<bean id="subref" factory-method="valueOf"
class="org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory.Strategy">
<constructor-arg>
<value>SubRef</value>
</constructor-arg>
</bean>

<bean id="typeRepresentationStrategyFactory"
class="org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory">
<constructor-arg index="0" ref="delegatingGraphDatabase" />
<constructor-arg index="1" ref="subref" />
</bean>

最佳答案

这应该这样做:

<bean id="typeRepresentationStrategyFactory" class="org.springframework.data.neo4j.support.typerepresentation.TypeRepresentationStrategyFactory">
<constructor-arg index="0" ref="graphDatabaseService"/>
<constructor-arg index="1" value="SubRef"/>
</bean>

关于neo4j - 为 Neo4j 配置 TypeRepresentationStrategy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10816507/

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