使用cypher ExecutionEngine向Neo4J数据库添加节点

使用cypher ExecutionEngine向Neo4J数据库添加节点,neo4j,cypher,owl,Neo4j,Cypher,Owl,按如下方式创建数据库: graphDb = new GraphDatabaseFactory().newEmbeddedDatabase( "D:/TestGraphDatabase" ); cypherEngine = new ExecutionEngine(graphDb, null); 试图以以下方式添加节点: String parentString = "Thing"; String uri = "XXX"; S

按如下方式创建数据库:

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;
String parentString=“Thing”;
字符串uri=“XXX”;
String queryString=“MERGE(owl:{name}{uri:{uri},name:{name})返回n”;
映射参数=新的HashMap();
parameters.put(“name”,parentString);
参数put(“uri”,uri);
resultIterator=(ResourceIterator)cypherEngine.execute(queryString,parameters).columns(“n”);
结果=resultIterator.next();
成功();
返回结果;
这给了我一个空指针异常: 在org.neo4j.cypher.ExecutionEngine.planQuery(ExecutionEngine.scala:85)在org.neo4j.cypher.ExecutionEngine.execute(ExecutionEngine.scala:75)在org.neo4j.cypher.ExecutionEngine.ExecutionEngine(ExecutionEngine.scala:71)上


我做错了什么?

需要在ExecutionEngine初始化期间传递StringLogger.DEV_NULL。

使用javacompat包中的ExecutionEngine,而不是另一个(来自Scala)

然后结果也会很容易处理

见:

上面写着:

警告:
这里使用的类来自org.neo4j.cypher.javacompat包,而不是org.neo4j.cypher,请参阅下面的Java API链接。

我没有直接使用cypher ExecutionEngine的经验,但我知道cypher REST API不允许标签(在本例中,
:{name}
)作为参数。此外,您的查询似乎返回了名为
n
的内容,但在查询的其余部分中没有这样的标识符。