Spring-Neo4j关系级
假设我正在Spring-Neo4j关系级,neo4j,spring-data-neo4j,Neo4j,Spring Data Neo4j,假设我正在Neo4j上实现用户朋友关系。我正在使用spring-neo4j进行建模 用户作为朋友彼此相关。我们可以带用户成为朋友,这是一级关系。在Neo4J中,有没有一种方法可以交到属于二级关系和三级关系的朋友,尤其是spring-Neo4J 谢谢大家! 编辑: 关系级别可以动态给定吗?我有一个能在各个层次上找到每个人的作品 MATCH u1-[:friend*]->(u2) WHERE u1.userId IN ["userId1"] RETURN u2 我编辑
Neo4j
上实现用户朋友关系。我正在使用spring-neo4j
进行建模
用户作为朋友彼此相关。我们可以带用户成为朋友,这是一级关系
。在Neo4J
中,有没有一种方法可以交到属于二级关系
和三级关系
的朋友,尤其是spring-Neo4J
谢谢大家!
编辑:
关系级别可以动态给定吗?我有一个能在各个层次上找到每个人的作品
MATCH u1-[:friend*]->(u2)
WHERE u1.userId IN ["userId1"]
RETURN u2
我编辑过的问题是,我能给出一个关系级别并得到结果吗。例如,我给2,并试图获得第二级的朋友。如果我给了3,它将返回3级朋友。这是动态给出的吗?不确定这里的具体问题是什么,但这是如何使用spring-data-neo4j实现的
@NodeEntity
public class User
{
@RelatedTo(type="FRIEND")
Set<User> friends;
private Iterable<Person> friends;
@Query(value = "start n=node({self}) match (u)-[r]->(friend)-[r]->(friendOfFriend) where r.type = 'FRIEND' return friendOfFriend")
Iterable<User> friendsOfFriends;
}
@NodeEntity
公共类用户
{
@与(type=“FRIEND”)相关
结交朋友;
私人朋友;
@查询(value=“start n=node({self})匹配(u)-[r]->(friend)-[r]->(friendOfriend),其中r.type='friend'返回friendOfriend”)
值得信赖的朋友;
}
我问题的编辑部分是:
MATCH u1-[:friend*relationLevel]->(u2)
WHERE u1.userId IN ["userId1"]
RETURN u2
relationLevel
是我想要的级别。若为2,则结果仅适用于二级关系
可能是在春天
@Query("start user1=node({0}) match (user1)-[r:friend*{1}]->(user2) where has(user2.userId) return user2.userId")
Iterable<String> getRelatedUserIdsByRelationLevel(GraphUser graphUser,int relationLevel);
@Query(“start user1=node({0})match(user1)-[r:friend*{1}]>(user2)where has(user2.userId)return user2.userId”)
Iterable getRelatedUserIdsByRelationLevel(GraphUser-GraphUser,int-relationLevel);
我编辑了问题,你能检查一下吗?你有编辑部分的答案吗?我找到了我要找的。