我目前正在使用SpringDataNeo4j-4.1.0-BUILD-SNAPSHOT。我使用“extends GraphRepository"”访问数据库。结构和Neo4jTemplate。除了其他事项,我使用简单的派生查询器查询,如:
Event findById (Long id)
这样可以正常工作并按预期返回结果。现在我有一些情况,我想通过属性找到一个条目,但只检索某些关系:
@Query("MATCH (n:Event{dbId:{0}})-[r:species|figure]->(m) RETURN n,r,m")
Event findById (Long id)
我知道现在不支持。是否有可能解决此问题的方法,而不必自己构建对象,并且这将在SDN的未来版本中实现,因为OGM 2.0.0-M01现在可以执行这样的查询吗?
答案 0 :(得分:1)
您可以使用Neo4jTemplate.query
并从Result
中检索“n”。
n将是一个Event
,它已经为species
和'figure`的属性和关系充气。
或者,您可以创建一个@QueryResult
,使用自定义Query
注释的存储库方法返回,然后您仍然可以返回水合事件。
此功能已在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)
不受支持,因为查询返回了三个实体,但只有一个实体可以返回。