提问者:小点点

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


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

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

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


共1个答案

匿名用户

默认深度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子句中列出要映射到对象的所有节点/关系。