Neo4j 如何将查询结果映射到域对象?

Neo4j 如何将查询结果映射到域对象?,neo4j,neo4j-ogm,Neo4j,Neo4j Ogm,我正在开发一个直接使用neo4j ogm库的程序(也就是说,我不使用任何Spring组件),我的neo4j DB有这种关系: PARAMETERSTEP-[:HAS_PARAMETER]->参数 步骤-[:有步骤]->步骤 参数-[:初始化]->参数 我对所有域类(参数、任务和步骤)进行了编码 我编写一个查询,如(使用会话.query方法调用): 匹配(:任务)-[r*]->()返回r 我可以直接将查询结果映射到域对象吗 编辑: 更尖锐的是,我有这个课堂任务 @NodeEntity cl

我正在开发一个直接使用neo4j ogm库的程序(也就是说,我不使用任何Spring组件),我的neo4j DB有这种关系:

PARAMETERSTEP-[:HAS_PARAMETER]->参数
步骤-[:有步骤]->步骤
参数-[:初始化]->参数

我对所有域类(参数、任务和步骤)进行了编码

我编写一个查询,如(使用
会话.query
方法调用):
匹配(:任务)-[r*]->()返回r

我可以直接将查询结果映射到域对象吗

编辑: 更尖锐的是,我有这个课堂任务

@NodeEntity
    class Task {
        @RelationShip(type = "HAS_STEP")
        Set<Step> steps;

        @RelationShip(type = "HAS_PARAMETER")  
        Set<Parameter> parameters;
    }
@NodeEntity
课堂任务{
@关系(type=“HAS\u STEP”)
设定步骤;
@关系(type=“HAS\u参数”)
设置参数;
}

我希望填写一个任务实例(包含步骤和参数),并且每个步骤也要填写。

是的,你可以,这里有一篇关于它的完整博文:


是的,你可以,这里有一篇关于它的完整博文:


您可以使用
session.query()
返回包含结果的
org.neo4j.ogm.model.Result
。这仅在Neo4j OGM 2.0.1中受支持

不支持返回路径,因此必须返回组成路径的节点和关系,例如

MATCH p=(t:TASK)-[r*]->()返回t、节点(p)、关系(p)

然后,您可以从
结果
访问
t
,这将是一项水化任务。或者,您可以从路径中所有水合实体的
结果
访问节点

测试中有更多示例:


顺便说一句,Christophe引用的博客文章对于OGM功能仍然有效,如果您需要了解可以映射的内容。

您可以使用
session.query()
返回包含结果的
org.neo4j.OGM.model.Result
。这仅在Neo4j OGM 2.0.1中受支持

不支持返回路径,因此必须返回组成路径的节点和关系,例如

MATCH p=(t:TASK)-[r*]->()返回t、节点(p)、关系(p)

然后,您可以从
结果
访问
t
,这将是一项水化任务。或者,您可以从路径中所有水合实体的
结果
访问节点

测试中有更多示例:


顺便说一句,Christophe引用的博客文章对于OGM功能仍然有效,如果您需要了解可以映射的内容。

它似乎特定于Spring Data framework:(neo4j OGM库有解决方案吗?我想我误解了“SDN和neo4j OGM”这句话。这意味着该解决方案可以与SDN或Neo4J-OGM一起使用。这似乎是针对Spring数据框架的:(Neo4J OGM库有解决方案吗?我想我误解了“SDN和Neo4J OGM”这句话。这意味着该解决方案可以与SDN或Neo4J-OGM一起使用。它可以用于获取对象:)但是,如何在我的查询中混合对象和计算值?我阅读了Christophe的文档,但是注释@query和QueryResult似乎没有在neo4j-ogm中实现。只需返回对象和计算值-您的结果将包含每个对象的值。实体将映射到域对象,计算值将可用可以按原样操作。查看它用于获取对象:)但是,如何在查询中混合对象和计算值?我阅读了Christophe的文档,但是注释@Query和QueryResult似乎没有在neo4j-ogm中实现。只需返回对象和计算值-您的结果将包含每个对象的值。实体将映射到域对象,计算值将按原样提供。看见