使用OGM的自定义Cypher查询中的深度始终为0?

时间:2017-04-17 21:31:41

标签: neo4j cypher spring-data-neo4j neo4j-ogm

我目前正在评估OGM / Spring Data Neo4j用例,并遇到了以下问题:

通过Spring Data @Query注释或直接通过Neo4j Session执行自定义Cypher查询时,结果仅包含直接查询的节点,而不包含相关节点(关系为{{1在结果节点对象中)。即这些查询的深度似乎是0而不是1,正如我从文档中所期望的那样。

如何通过OGM或深度为1的Spring Data Neo4j执行自定义Cypher查询?

1 个答案:

答案 0 :(得分:5)

默认深度1指的是存储库和派生查找程序中的findOne / findAll / ..方法。

这是文档中有关自定义查询的内容:

  

在当前版本中,自定义查询不支持分页,排序或自定义深度。此外,它不支持将路径映射到域实体,因此,不应从Cypher查询返回路径。相反,返回节点和关系以将它们映射到域实体。

http://docs.spring.io/spring-data/data-neo4j/docs/current/reference/html/#reference:session:loading-entities:cypher-queries

例如,当您有查询时

MATCH (n:MyLabel)-[r]-(n2)
WHERE ... // some condition
RETURN n,r,n2

列出要在RETURN子句中映射到对象的所有节点/关系。