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

时间:2016-03-14 01:10:38

标签: java neo4j spring-data-neo4j-4

我目前正在使用 Spring neo4j 。一个任务是使用 linkurious 显示图表。但是,如何通过 spring-data-neo4j 告诉Spring节点的标签?我需要标签以linkurious为图形着色。如果使用图形存储库中定义的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响应。

1 个答案:

答案 0 :(得分:1)

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