Получение пути в Spring Data Neo4j 3.1.1 с использованием SpringRestGraphDatabase не работает
Я пытаюсь получить кратчайший путь между двумя узлами в простом графе. Я получаю
NullPointerException at org.springframework.data.neo4j.support.path.ConvertingEntityPath.nodes(ConvertingEntityPath.java:137)
Где я понял, что delegate
является нулевым, но я не знаю почему.
Вот мой репозиторий с запросом cypher (протестирован и работает на neo4j UI):
@Query("START from=node({0}), to=node({1}) MATCH path=(from)<-[:NETWORK_LINK*]->(to) RETURN path")
Iterable<EntityPath<DGNode, DGNode>> getShortestNetworkPathBetween(Long fromid, Long toid);
и мой тестовый код:
System.out.println("Network path from "+srv1.getId()+" to "+srv5.getId()+" : \n");
Iterable result = nodeRepository.getShortestNetworkPathBetween(srv1.getId(), srv5.getId());
Iterable<EntityPath<DGNode,DGNode>> paths = (Iterable<EntityPath<DGNode,DGNode>>) result;
for(EntityPath<DGNode,DGNode> path : paths) {
String nodes = "";
while (path.nodeEntities().iterator().hasNext()) {
nodes += ", " + ((DGNode) path.nodeEntities().iterator().next()).getName();
}
System.out.println("From " + path.startNode().getClass().getName() + " to " + path.endNode().getClass().getName() + " : " + nodes);
}
Мой код основан на следующем примере spring-data-neo4j-examples. Я также проверил этот пост, но без посторонней помощи: запрос возвращает коллекцию (QueryResultBuilder не может быть приведен к EntityPath) и, кстати, EndResult, кажется, был переименован в Result в этой версии.