0

在创建关系时,我无法通过 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")) {
                }
            } 
4

2 回答 2

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

                    }
                } 
于 2015-10-19T14:10:48.743 回答
0

你的MATCH匹配有什么吗?如果不是,它将不会创建关系并将成功返回。也许删除这两CREATE行并RETURN a, b查看。

于 2015-10-19T12:42:49.040 回答