我正在尝试使用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();
所以这包括对DB的两次调用(findByPropertyValue)。这是正确的还是有其他方法可以做到这一点?也许将整个事情分成一个请求?
谢谢..
答案 0 :(得分:1)
您可以使用单个密码查询执行这两项操作:
START user1=node:User(userId={userId1}),
user2=node:User(userId={userId2})
CREATE UNIQUE (user1)-[:FRIEND]-(user2);
用户ID在地图中作为参数传递。
您也可以使用带注释的存储库方法。