3

在 spring data neo4j (3.3.1) 的早期版本中,我能够在我的数据库中查询路径并返回它们,Iterable<EntityPath<S,E>>如下所示:

public interface ArgumentNodeRepository extends GraphRepository<ArgumentNode> {
    @Query("START t=node({0}), r=node({1}) MATCH p=t<-[:SUPPORTED_BY|INTERPRETS*0..]-r RETURN p")
    Iterable<EntityPath<ArgumentNode, ArgumentNode>> getPaths(long childId, long rootId);
}

我正在尝试迁移到 4.0.0 并且 EntityPath 类似乎已经消失了。我在迁移指南中没有看到任何提及 EntityPath 的内容。我的新返回类型是什么?

4

2 回答 2

3

SDN 4 不支持 EntityPath,但您仍然可以查询路径。我在这里有一个示例,其中包含一个返回路径的 Cypher 查询 - 返回类型是Iterable<Map<String, Object>>

这表示路径的集合,每个路径包含交错节点列表和路径中的关系(节点和关系表示为 Map)。我如何处理路径的一个例子是https://github.com/luanne/flavorwocky/blob/sdn/src/main/java/com/flavorwocky/service/PairingServiceImpl.java#L57

于 2015-10-06T11:26:29.877 回答
0

您也可以为此使用 Neo4jOperations。只需创建一个自定义存储库实现(参见http://docs.spring.io/spring-data/data-commons/docs/current/reference/html/#repositories.custom-implementations),然后从那里调用 Neo4jOperations bean:

neo4jOperations.queryForObjects(ArgumentNode.class, "START t=node({0}), r=node({1}) MATCH p=t<-[:SUPPORTED_BY|INTERPRETS*0..]-r RETURN p")

这将返回 ArgumentNodes 列表

于 2015-10-27T12:52:46.627 回答