java - spring-data-neo4j 获取节点和标签

标签 java neo4j spring-data-neo4j-4

我目前使用Springneo4j。其中一项任务是使用 linkurious 显示图表。但是,如何通过 spring-data-neo4j 告诉 Spring 节点的标签呢?我需要标签来为图表着色。如果使用findAll()在图形存储库中定义,只返回节点属性?

有什么建议吗?

更新

我尝试使用@QueryResult ,但响应有问题。更具体地说:

我定义

@QueryResult
public class NodeWithLabel {
    GLNode glNode;
    ArrayList<String> labels;
}

然后在存储库中,我有

@Query("MATCH (n:GLNode) RETURN n AS glNode, labels(n) as labels")
Collection<NodeWithLabel> getAllNodesWithLabel();

最后,我会得到一个结果 ArrayList<E> ,所以 spring mvc 将响应空,如 [{},{},{},{}] 。一般情况下,如嵌入的findAll()函数,aLinkedHashSet<E>应该返回,在这种情况下,spring mvc可以发送回json响应。

最佳答案

SDN 4.0 不会将节点/关系映射到 @QueryResult 中的域实体。您发布的代码将适用于 SDN 4.1

如果你想在SDN 4.0中实现同样的效果,你可以这样做:

@QueryResult
public class NodeWithLabel {
    Long id;
    Map<String,Object> node;
    ArrayList<String> labels;
}


@Query("MATCH (n:GLNode) RETURN ID(n) as id, labels(n) as labels, {properties : n} as node")
Collection<NodeWithLabel> getAllNodesWithLabel();

注意:强烈建议您计划升级到 SDN 4.1

关于java - spring-data-neo4j 获取节点和标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35978002/

相关文章:

java - Java 中删除元素时迭代 LinkedList

java - 从两个列表中查找缺失的数字

java - 是否可以在 Neo4J Java Driver v1.0.3 中为 asList 方法指定元素类型

Neo4j TimeTree REST API 上一个和下一个导航

Neo4j 3.0.1 SDN 4.1.1.RELEASE 幻像节点

neo4j - 在 session.save 上合并两个节点(唯一节点)

java - 在 .map() 中返回 null 与在 Reactor 中返回 .flatMap()

java - 由 : java. lang.IllegalStateException 引起:替换 Activity 中的任何 fragment 时,无法在 onSaveInstanceState 之后执行此操作

java - 我正在使用 jdbc Bolt 库连接到 neo4j 数据库。我的代码通过 main 方法完美运行,但未在 servlet (tomcat) 上运行

neo4j - neo4j可选匹配项和null