2014-02-08 69 views
0

我試圖把Java包像org.somepackage.parserorg.otherpackage.parser到Neo4j的數據庫中創建唯一的。我試圖用下面的密碼查詢來解決這個問題。具有鮮明的節點

MATCH (root:package {isRoot: true}) 
CREATE UNIQUE (root) 
<-[:subpackage]-(:package {name: 'org'}) 
<-[:subpackage]-(:package {name: 'somepackage'}) 
<-[:subpackage]-(:package {name: 'parser'}) 


MATCH (root:package {isRoot: true}) 
CREATE UNIQUE (root) 
<-[:subpackage]-(:package {name: 'org'}) 
<-[:subpackage]-(:package {name: 'otherpackage'}) 
<-[:subpackage]-(:package {name: 'parser'}) 

使用解析器節點上面的查詢只獲得了兩次關係somepackageotherpackage。我知道這是預期的行爲,但有沒有辦法得到2個不同的解析器節點?一個鏈接到部分包裝另一個鏈接到其他包裝

回答

0

要麼你可以在你的parser節點添加一個名爲id的ATTRIB和使用Java randomUUID生成ID或者如果你不想這樣做,你可以簡單地重新命名解析器節點作爲

name: "org.otherpackage.parser" and name: "org.somepackage.parser" 
+0

肯定。我解決問題的方式。但它感覺像一個黑客;) –

+0

我會說一個更聰明的方式來設計 –