Neo4j - 无法在java中使用cypher来建立关系

时间:2015-10-19 12:34:39

标签: neo4j neo4j-java-api

我在创建关系时无法通过java执行密码查询。它不会抛出任何错误,但不会创建任何关系。尝试使用其他密码查询返回一个完美返回的节点。但无法弄清楚没有创建关系的原因。

这是我的代码:

public static void addrelation(String node1, String node2, int cocr) {
        try (Transaction tx = graphdb.beginTx();
                Result result = graphdb.execute("MATCH(a{word:\"" + node1
                        + "\"}),(b{word:\"" + node2 + "\"})"
                        + "CREATE a-[r:coocr{val:" + cocr + "}]->(b)"
                        + "CREATE a<-[s:coocr{val:" + cocr + "}]-(b)"
                        + "RETURN r,s")) {
                }
            } 

2 个答案:

答案 0 :(得分:1)

添加tx.success()行会对数据库进行更改。

    public static void addrelation(String node1, String node2, int cocr) {
            try (Transaction tx = graphdb.beginTx();
                    Result result = graphdb.execute("MATCH(a{word:\"" + node1
                            + "\"}),(b{word:\"" + node2 + "\"})"
                            + "CREATE a-[r:coocr{val:" + cocr + "}]->(b)"
                            + "CREATE a<-[s:coocr{val:" + cocr + "}]-(b)"
                            + "RETURN r,s")) {

   //Adding this line resolved the issue.                 
                           tx.success();

                    }
                } 

答案 1 :(得分:0)

您的MATCH是否匹配?如果没有,它不会创建关系并将成功返回。也许删除两个CREATE行和RETURN a, b来查看。