Получение пути в 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 в этой версии.

0 ответов

Другие вопросы по тегам