按如下方式创建数据库:
graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( "D:/TestGraphDatabase" );
cypherEngine = new ExecutionEngine(graphDb, null);
尝试以下列方式添加节点:
String parentString = "Thing";
String uri = "XXX";
String queryString = "MERGE (owl:{name} {uri: {uri}, name: {name}}) RETURN n";
Map<String, Object> parameters = new HashMap<>();
parameters.put( "name", parentString );
parameters.put( "uri", uri );
resultIterator = (ResourceIterator<Node>) cypherEngine.execute(queryString, parameters).columnAs("n");
result = resultIterator.next();
tx.success();
return result;
这给了我一个空指针异常: org.neo4j.cypher.ExecutionEngine.planQuery(ExecutionEngine.scala:85)org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:75)at org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:71) )
我做错了什么?
答案 0 :(得分:0)
在ExecutionEngine初始化期间需要传递StringLogger.DEV_NULL。
答案 1 :(得分:0)
使用javacompat包中的ExecutionEngine而不是另一个(来自Scala)。
然后结果也很容易处理。
请参阅:http://neo4j.com/docs/stable/tutorials-cypher-java.html
它说:
此处使用的类来自org.neo4j.cypher.javacompat包,而不是org.neo4j.cypher,请参阅下面的Java API链接。