SDN 4按深度为1的属性列表查询



我需要一个Spring Data Neo4J存储库方法,该方法将名称列表作为输入,并返回具有这些名称之一的特定标签的所有节点,深度为1。

例如:

Set<Person> findAllByName(Set<String> names)

应该返回一个集合,其中包含名字在"names"集合中的所有person,包括它们的所有直接子节点。

我愿意编写自定义查询,过滤器或其他任何东西,我只是想让它以某种方式工作。

我已经尝试使用Neo4jOperations编写一个自定义存储库实现。loadAllByProperties,但我不知道如何创建一个过滤器匹配一个列表。

谢谢,亚历克斯

您可以在存储库中使用如下的密码查询:

@Query( "MATCH (a:Person) "+
        "WHERE a.personId IN {0} " +
        "RETURN a ")
List<Person> getPersonList(Set<String> personSet);

然后在控制器中调用存储库查询:

List<Person> listPerson = personRepository.getPersonList(names);

EDIT:由于您也希望填充Person的关系,因此基于此博客条目,可以执行以下操作:

@Query( "MATCH (a:Person) "+
        "WHERE a.personId IN {0} "+
        "WITH a "+
        "MATCH p=(a)-[r*0..1]-()"+
        "RETURN a, nodes(p), rels(p)")
List<Person> getPersonList(Set<String> personSet);

相关内容

  • 没有找到相关文章

最新更新