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

时间:2014-11-05 07:39:37

标签: neo4j cypher owl

按如下方式创建数据库:

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) )

我做错了什么?

2 个答案:

答案 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链接。