Javadoc для Cypher не очень ясно об этом, возможно, потому что нет никакого.
Итак, я заново создал ваш код в «пробной версии», которая демонстрирует, как перебирать свойства узлов в совпадении. Домен - это виды фруктов, где каждый вид связан с узлом «фрукты». Соответствующий фрагмент после этого запроса:
Iterator<Node> kindsOfFruit = result.columnAs("x");
while (kindsOfFruit.hasNext()) {
Node kindOfFruit = kindsOfFruit.next();
System.out.println("Kind #" + kindOfFruit.getId());
for (String propertyKey : kindOfFruit.getPropertyKeys()) {
System.out.println("\t" + propertyKey + " : " +
kindOfFruit.getProperty(propertyKey));
}
}
Это ключ result.columnAs("x")
. Умно названный параметр String n
ссылается на «имя столбца» в предложении результата. В этом примере мы хотим, чтобы столбец «x» содержал Node
объектов, поэтому мы можем прямо присвоить Iterator<Node>
и затем использовать его.
Если столбец не может быть найден, мы получим org.neo4j.graphdb.NotFoundException
.
Если мы попросим присвоить неправильный класс, мы получим обычный java.lang.ClassCastException
.
Полный рабочий пример доступен здесь:
https://github.com/akollegger/neo4j-trials/blob/master/src/test/java/org/akollegger/neo4j/trials/richardw/ExecutionResultIteratorTrial.java
Надеюсь, это поможет.
Ура,
Andreas