java - 将 Neo4J 结果映射到 java 对象

标签 java neo4j spring-data-neo4j-4

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

有什么办法可以映射这个Map<String, Object>到一个java对象?我尝试过,但一直得到空值

例如,

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

想要将此查询的返回值匹配到

@QueryResult
class QueryResult{
    NodeInfo node;
}

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

如果类定义为,则映射有效

@QueryResult
class QueryResult{
   Map<String, Object> node;
}

最佳答案

不支持将 Map 转换为 POJO。

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

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

关于java - 将 Neo4J 结果映射到 java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33934030/

相关文章:

Neo4j : k-shortest path Built-In Algorithm support

neo4j - 使用密码获取节点的所有关系

java - 使用 cypher 获取带有标签和索引的节点

neo4j - 如何将 List<CustomObject> 持久化为节点的属性?

Java:如何测试调用 System.exit() 的方法?

java - Servlet 发送旧版本的实体 (JPA)

neo4j - SDN 4 - Neo4jOperation.convert() 已弃用

spring - 如何在SDN4中获取Neo4jTemplate

java - 在 RestController 中绑定(bind) JSON 请求时获取 java.lang.NoSuchMethodException : javax.validation.Valid.value() 错误

java - 正确实现所有相等对象的属性