0

我在想什麼是使用Spring從json在Neo4j中創建圖形的最佳方法。想象一下,我有一個簡單NodeEntity人:從Json在春季構建Neo4J圖形

@NodeEntity public class Person { 
    private Set<Person> friends; 
} 

我想從像JSON對象建立人與人之間的友誼的圖表:

{ 
    persons: [ 
    {name:"Fritz", friend:["Hans"]}, 
    {name:"Hans", friends:["Fritz", "Georg"]}, 
    {name:"Georg", friends:["Hans"]} 
    ] 
} 

我可以使用Spring數據的REST API,以去將json直接序列化到節點實體和關係?

回答

1

好問題,過去我只是試着寫SD-REST的單個實體,而不是有關係的實體。

我可能會編寫自己的rest-controller並將JSON轉換爲正確的對象。

您也可以直接使用Cypher並將json根作爲參數json傳遞給cypher。

UNWIND {json}.persons as person 
// MERGE = get-or-create 
MERGE (p:Person {name:person.name}) 
UNWIND person.friends as friend 
// because the friend can come earlier as friend than as a person 
MERGE (f:Person {name:friend.name}) 
// merge on relationship to make sure it only exists once, no matter the direction 
MERGE (p)-[:KNOWS]-(f) 

該查詢可以是SDN存儲庫的一部分,也可以通過Neo4jTemplate或-Session調用。

在SDN4中,您可以使用直接從您的域對象創建的SDN4。

+0

我一般我都推薦檢查一下SDN 4,它將在本週發佈爲RC1,這是一個從頭開始對Neo4j Server進行了優化的完全重寫,並清除了我們在SDN3中遇到的很多問題。 –