在Spring中从Json构建Neo4J图

时间:2015-06-14 16:28:23

标签: spring neo4j spring-data spring-data-neo4j spring-data-rest

我想知道使用Spring从json在Neo4j中创建图形的最佳方法是什么。想象一下,我有一个简单的NodeEntity Person:

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

我想建立一个json对象之间的友谊图表,如:

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

我可以使用Spring Data Rest API将json直接反序列化为节点实体和关系吗?

1 个答案:

答案 0 :(得分: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中,您可以使用直接来自域对象创建的内容。

相关问题