0

我正在尝试使用 Spring Data Neo4j 使用 Neo4j 创建新的节点和关系。我的用例是在 2 个用户节点之间添加好友关系。所以这归结为:

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();

所以这包括对数据库的 2 次调用(findByPropertyValue)。这是正确的还是有其他方法可以做到这一点?也许将整个事情集中到一个请求中?

谢谢..

4

1 回答 1

1

您可以使用单个密码查询来完成这两项工作:

START user1=node:User(userId={userId1}),
      user2=node:User(userId={userId2})
CREATE UNIQUE (user1)-[:FRIEND]-(user2);

用户 ID 在地图中作为参数传入。

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

于 2013-12-17T08:58:13.340 回答