将查询结果集映射到SDN 3.3.1.RELEASE中的域对象

时间:2015-07-03 01:23:30

标签: neo4j cypher spring-data-neo4j

我创建了一个带有SDN 3.3.1的POC,其中我在Neo4j服务器中部署了一个插件。该插件包含域对象,存储库和控制器。

从我的应用程序中,我正在调用控制器来执行存储库方法并返回响应。

问题是在我的查询中,我正在返回多个节点和关系。因此,为了映射响应,我使用@QueryResult创建了包装类,@ ResultColumn包含对每个查询的域对象的引用。这是因为每个查询都有不同的结果集。

因为,我的应用程序有大约150个这样的查询,我将不得不创建相似数量的中间包装类。 这非常繁琐,随着越来越多的查询被添加,包装类的数量将来会增加。

有没有更聪明的方法呢?

我尝试将所有域对象作为引用放在一个包装器类中。这样我就可以将它用于任何查询。但是如果查询结果中没有包装类中的任何字段,它会给出异常。

另一个问题是,我的一些查询被编写为返回连接到特定节点的所有不同节点,例如, 匹配(a) - [rel] - >(b) - [tempRel] - >(tempNodes)返回b,tempRel,tempNodes

我不确定如何将此结果集映射到包装类。 有没有办法实现它而不重构查询以匹配单独的路径?

此致

的Rahul

1 个答案:

答案 0 :(得分:0)

好主意让它忽略两个方向上的未知类和字段,或许作为课程上的附加注释可以引发Spring JIRA问题吗?

像这样的东西,例如

@QueryResult(requireFields=false, require=false)
class MyResult {
    String name;
    int age;
}

但你仍然让他们专注于一个领域或用例而不是所有150个用例中的1个,但可能是15到30个不同的用例。