在一个查询中创建节点和关系:Spring数据Neo4j

在一个查询中创建节点和关系:Spring数据Neo4j,neo4j,spring-data-neo4j,spring-data-graph,Neo4j,Spring Data Neo4j,Spring Data Graph,我正在尝试使用Spring数据Neo4j使用Neo4j创建新的节点和关系。我的用例是在两个用户节点之间添加朋友关系。这可以归结为: User user1 = userRepo.findByPropertyValue("userId1", userId1); User user2 = userRepo.findByPropertyValue("userId2", userId2); if(user1 == null){ createUserObject(userId1); } if(u

我正在尝试使用Spring数据Neo4j使用Neo4j创建新的节点和关系。我的用例是在两个用户节点之间添加朋友关系。这可以归结为:

User user1 = userRepo.findByPropertyValue("userId1", userId1);
User user2 = userRepo.findByPropertyValue("userId2", userId2);

if(user1 == null){
    createUserObject(userId1);
}

if(user2 == null){
    createUserObject(userId2);
}

user1.isFriend(user2);

userRepo.save();
因此,这包括对DB(findByPropertyValue)的2个调用。这是正确的还是有其他方法可以做到这一点?也许把整件事都集中到一个请求中


谢谢..

您可以通过一个密码查询同时执行这两项操作:

START user1=node:User(userId={userId1}),
      user2=node:User(userId={userId2})
CREATE UNIQUE (user1)-[:FRIEND]-(user2);
用户id作为参数在映射中传递

您还可以为此使用带注释的存储库方法