Я написал тест, скопировав официальный пример запроса cypher от here и добавив необходимый литой. Затем он терпит неудачу: java.lang.ClassCastException: scala.collection.Iterator$$anon$11 cannot be cast to java.util.Iterator ...
. Это код:Невозможно выполнить итерацию ExecutionResult
@Test
public void testCreateWithCypher() {
ExecutionEngine engine = new ExecutionEngine(db, StringLogger.SYSTEM);
try (Transaction transaction = db.beginTx()) {
String cypher = "CREATE (x:Person {name: 'John'})" +
"RETURN x";
ExecutionResult result = engine.execute(cypher);
Iterator<Node> n_column = (Iterator<Node>) result.columnAs("x");
for (Node node : IteratorUtil.asIterable(n_column)) {
String nodeResult = node + ": " + node.getProperty("name");
}
transaction.success();
}
}
Без броска, он не будет компилироваться, так как columnAs
возвращается Iterator<Object>
. Что это такое scala.collection.Iterator$$anon$11
делать, кстати? Я думал, что это extendedjava.lang.Iterator
?
Я просто хочу Iterator<Node>
, так что я могу получить материал от ExecutionResult
. Как это сделать без приведения? Мой проект использует эти зависимости для ${neo4.version}
= 2.0.1:
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j</artifactId>
<version>${neo4j.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher</artifactId>
<version>${neo4j.version}</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-kernel</artifactId>
<version>${neo4j.version}</version>
<type>test-jar</type>
</dependency>
Спасибо! Ты мужчина! –