我在创建关系时无法通过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")) {
}
}
答案 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
来查看。