Spring-data-neo4j 获取节点和标签
Spring-data-neo4j get nodes and labels
我目前使用 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()
函数,应该返回一个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
我目前使用 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()
函数,应该返回一个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