2016-12-08 121 views
0

我正在使用Neo4j嵌入式數據庫的Java API。在Java中新建一個neo4j節點和現有節點之間的關係

雖然將實例保存爲Node,但我想從其創建一個Relationship到另一個節點,除了屬性(id/key)之外,我沒有任何引用。

據我瞭解,如果我有兩個節點,我只想用:

nodeBeingSavedSeparately.createRelationshipTo(
      nodeToHaveRelationshipTo, 
      RELATIONSHIP_TYPE 
); 

但我只是增加一個新節點,我想有另一種已經存在的節點之間的關係,而不是創建一個新節點。

是否有可能從數據庫中獲取Node的正確實例並在該方法中使用它? 喜歡的東西:

nodeBeingSavedSeparately.createRelationshipTo(
      getNodeByProperty("idPropertyOfTheNodeToHaveRelationshipTo"), 
      RELATIONSHIP_TYPE 
); 

我發現,有一個getNodeById(long);方法,但沒有Node.setId(long);方法。我如何設置/獲得關係的正確參考?

回答

1

您可以使用findNodefindNodes中的GraphDataBaseService來獲取現有節點。

+0

我正在創建一個用戶節點node node = createNode(); node.setProperty(「id」,「john」); node.addLabel(Label.label(「users」));'然後在另一個事務嘗試通過findNode(Label.label(「users」),「id」,「john」);'但它結束不成功的。請問我做錯了什麼? – BBerry

+0

我剛剛通過使用另一個屬性將其更改爲搜索,它似乎工作。是否保留屬性名稱'id'? – BBerry

+0

如果有多個匹配節點,'findNode'可以拋出一個MultipleFoundException異常。那是怎麼回事? – cybersam

相關問題