В 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
Надеюсь, это поможет.
Привет, Андреас
person
akollegger
schedule
29.12.2011