将 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 支持转换器处提出功能请求。
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 支持转换器处提出功能请求。