我想要一个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;
实现这种架构的最佳方法是什么?
答案 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()
部分是否有效。