将 Neo4J 结果映射到 java 对象

Mapping Neo4J result to java object

Spring 提供 @QueryResult 注释以将 returned 值映射到 java 对象。但似乎用 @QueryResult 注释的 class 只能有原始类型的实例变量。如果它是一个对象,那么它会被映射到 Map<String, Object>

有什么方法可以将此 Map<String, Object> 映射到 java 对象吗?我试过了,但一直得到空值

例如,

MATCH (n{name:'x'}) return {id: ID(n), labels: labels(n)}

想要将此查询的 return 值匹配到

@QueryResult
class QueryResult{
    NodeInfo node;
}

class NodeInfo{
   Long id;
   String []labels;
}

如果 class 定义为

,则映射有效
@QueryResult
class QueryResult{
   Map<String, Object> node;
}

不支持 - 将 Map 转换为 POJO。

您最终可能会定义一个转换器 (NodeInfo<->Map),但这在当前版本中不起作用。

如果您希望团队讨论此项目,请在 https://jira.spring.io/browse/DATAGRAPH/to 支持转换器处提出功能请求。