我目前使用Spring和neo4j。其中一项任务是使用 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/