Spring-data-neo4j 获取节点和标签

Spring-data-neo4j get nodes and labels

我目前使用 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()函数,应该返回一个LinkedHashSet<E>,在这种情况下,spring mvc可以返回一个json响应。

SDN 4.0 不会将 nodes/relations 映射到 @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