Spring Data Neo4j - 如何将NodeEntity连接到参考节点0?

时间:2012-11-15 16:07:44

标签: neo4j spring-data-neo4j spring-data-graph

我想要一个Neo4j图表,其中所有内容都连接到参考节点(node0)。我的想法是将node0连接到“类类型”节点(rootNode),然后将某个类的所有节点连接到它。 EG:

node0 --> unique RootUser --> many User

我正在使用SpringNeo4j,因此我使用@NodeEntity注释了RootUser和User。我不知道如何在Spring中将node0连接到RootUser。我尝试在RootUser类中添加以下内容但它不起作用(referenceNode来自neo4jTemplate.getReferenceNode()):

@RelatedTo(type = "partition", direction = Direction.INCOMING)
    private Node referenceNode;

实现这种架构的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

最终将起作用的是将参考节点手动连接到弹簧数据实体:

RelationshipType relationshipType = ...; // Whatever...

RootUser rootUser = new RootUser();
rootUser.persist();
neo4jTemplate.getReferenceNode().createRelationshipTo(rootUser.getPersistentState(), relationshipType);

您可以尝试为参考节点声明一个类:

@NodeEntity
public class ReferenceNode {
}

@NodeEntity
public class RootUser {
    @RelatedTo(type = "partition", direction = Direction.INCOMING)
    private ReferenceNode referenceNode;

    public void setReferenceNode(ReferenceNode referenceNode) {
        this.referenceNode = root;
    }
}

...并使用以下命令加载和设置参考节点:

ReferenceNode referenceNode = neo4jTemplate.load(neo4jTemplate.getReferenceNode(), ReferenceNode.class);
RootUser rootUser = new RootUser();
rootUser.persist();
rootUser.setReferenceNode(referenceNode);

这是未经测试的,我不确定neo4jTemplate.load()部分是否有效。