具有自定义查询的 SpringDataNeo4j-4 派生查找器

SpringDataNeo4j-4 derived finders with custom queries

我目前正在使用 SpringDataNeo4j–4.1.0-BUILD-SNAPSHOT。我使用“扩展 GraphRepository”结构和 Neo4jTemplate 访问数据库。除其他外,我使用简单的派生查找器查询,例如:

Event findById (Long id) 

这很好用,returns 结果符合预期。现在我有这样的情况,我想通过 属性 找到一个条目,但只检索某些关系:

@Query("MATCH (n:Event{dbId:{0}})-[r:species|figure]->(m) RETURN n,r,m")
Event findById (Long id)

我知道这目前不受支持。这种行为是否有可能的解决方法,而无需我自己构造对象,这是否会在 SDN 的未来版本中实现,因为 OGM 2.0.0-M01 现在提供了执行这样的查询的可能性?

您可以使用 Neo4jTemplate.query 并从 Result 中检索 "n"。

n 将是一个 Event,它与 species 和“图形”的属性和关系相结合。

或者,您可以创建一个 @QueryResult,存储库方法用自定义 Query returns 注释,您仍然会得到水化事件。

此功能已在 SDN 4.1 快照 (4.1.0.BUILD-SNAPSHOT) 中可用

你上面的查询 @Query("MATCH (n:Event{dbId:{0}})-[r:species|figure]->(m) RETURN Return n,r,m") Event findById (Long id) 不支持,因为查询返回了三个实体,但预期只返回一个实体。