2012-11-15 91 views
1

我想有一個Neo4j圖,其中一切都連接到參考節點(node0)。我的想法是將node0連接到'class type'節點(rootNode),然後讓某個類的所有節點都連接到它。 EG:Spring Data Neo4j - 如何將NodeEntity連接到參考節點0?

node0 --> unique RootUser --> many User 

我使用SpringNeo4j所以我註釋RootUser和用戶與@NodeEntity。我不知道如何在Spring中將node0連接到RootUser。我嘗試添加在RootUser類以下,但它不工作(referenceNode來自neo4jTemplate.getReferenceNode()):

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

什麼是實現這種架構的最佳方式?

回答

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()部分作品。

+0

neo4jTemplate.load()不起作用: org.neo4j.graphdb.NotFoundException:未找到NodeImpl#0的'__type__'屬性。 \t在org.neo4j.kernel.impl.core.Primitive.newPropertyNotFoundException(Primitive.java:184) \t在org.neo4j.kernel.impl.core.Primitive.getProperty(Primitive.java:179) \t在有機.neo4j.kernel.impl.core.NodeImpl.getProperty(NodeImpl.java:52) \t在org.neo4j.kernel.impl.core.NodeProxy.getProperty(NodeProxy.java:155) \t在org.springframework.data .neo4j.support.typerepresentation.AbstractIndexingTypeRepresentationStrategy.readAliasFrom(AbstractIndexingTypeRepresentationStrategy.java:107) –

相關問題