Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用spring数据neo4j查找二级好友之间的关系_Neo4j_Cypher_Spring Data Neo4j - Fatal编程技术网

如何使用spring数据neo4j查找二级好友之间的关系

如何使用spring数据neo4j查找二级好友之间的关系,neo4j,cypher,spring-data-neo4j,Neo4j,Cypher,Spring Data Neo4j,使用MATCH(n:Person{name:'1})-[]-()-[r]-(m)返回m,r将返回“4”和“5”,但无法得到“4”和“5”之间的关系,实际上,“4”跟在“5”之后,“r”只代表4(4-->2)和5(5-->3)的朋友。 春季数据neo4j domain.java @NodeEntity(label = "Person") public class PersonTest { @Id private Long id; @Property(name = "name") private


使用
MATCH(n:Person{name:'1})-[]-()-[r]-(m)返回m,r
将返回“4”和“5”,但无法得到“4”和“5”之间的关系,实际上,“4”跟在“5”之后,“r”只代表4(4-->2)和5(5-->3)的朋友。
春季数据neo4j
domain.java

@NodeEntity(label = "Person")
public class PersonTest {
@Id
private Long id;
@Property(name = "name")
private String name;
@Relationship(type = "Follow")  //direction=Relationship.DIRECTION
private List<PersonTest> friends;
public interface PersonRepository extends Neo4jRepository<PersonTest,Long> {
    @Query("MATCH (n:Person {name:{name}})-[]-()-[r]-(m) RETURN m,r")
    Collection<PersonTest> graph(@Param("name") String name);
}
 Collection<PersonTest> persons = personRepository.graph(name);
 Iterator<PersonTest> result = persons.iterator();
 while (result.hasNext()) {
      for (PersonTest friend : p.getFriends()) {
           //........here will get 2 and 3!
      }
 }
@NodeEntity(label=“Person”)
公共类个人测试{
@身份证
私人长id;
@属性(name=“name”)
私有字符串名称;
@关系(type=“Follow”)//direction=Relationship.direction
私人名单朋友;
Repository.java

@NodeEntity(label = "Person")
public class PersonTest {
@Id
private Long id;
@Property(name = "name")
private String name;
@Relationship(type = "Follow")  //direction=Relationship.DIRECTION
private List<PersonTest> friends;
public interface PersonRepository extends Neo4jRepository<PersonTest,Long> {
    @Query("MATCH (n:Person {name:{name}})-[]-()-[r]-(m) RETURN m,r")
    Collection<PersonTest> graph(@Param("name") String name);
}
 Collection<PersonTest> persons = personRepository.graph(name);
 Iterator<PersonTest> result = persons.iterator();
 while (result.hasNext()) {
      for (PersonTest friend : p.getFriends()) {
           //........here will get 2 and 3!
      }
 }
公共接口PersonRepository扩展了Neo4jRepository{
@查询(“匹配(n:Person{name:{name})-[]-()-[r]-(m)返回m,r”)
集合图(@Param(“name”)字符串名称);
}
Service.java

@NodeEntity(label = "Person")
public class PersonTest {
@Id
private Long id;
@Property(name = "name")
private String name;
@Relationship(type = "Follow")  //direction=Relationship.DIRECTION
private List<PersonTest> friends;
public interface PersonRepository extends Neo4jRepository<PersonTest,Long> {
    @Query("MATCH (n:Person {name:{name}})-[]-()-[r]-(m) RETURN m,r")
    Collection<PersonTest> graph(@Param("name") String name);
}
 Collection<PersonTest> persons = personRepository.graph(name);
 Iterator<PersonTest> result = persons.iterator();
 while (result.hasNext()) {
      for (PersonTest friend : p.getFriends()) {
           //........here will get 2 and 3!
      }
 }
Collection persons=personRepository.graph(名称);
迭代器结果=persons.Iterator();
while(result.hasNext()){
for(PersonTest friend:p.getFriends()){
//……这里将得到2和3!
}
}

如何解决此问题??获取“4”和“5”之间的关系。

要查找特定级别的相关子级,可以使用可变长度的双面模式:

MATCH (n:Person {name:'1'})-[:Follow*2]->(m)-[r:Follow]-()<-[:Follow*2]-(n) 
RETURN m,r

在这个带有spring数据neo4j的模型中,通过“r”采集,会得到节点“6”,在这个场景中,我不需要“6”如何得到所有节点之间的关系?