1

我的 java 程序中有以下代码,如果它们不存在,则查询 janusgraph 以创建顶点和边。

Vertex v1 = g.V().has(<key1>,<value1>).tryNext().orElseGet(()->
tx.addVertex(T.label,<label1>,<key1>,<value1>));
Vertex v2 = g.V().has(<key2>,<value2>).tryNext().orElseGet(()->
tx.addVertex(T.label,<label2>,<key2>,<value2>));

如果顶点 v1 和 v2 不存在,则会创建它们。

..code to check if an edge exists between the two vertices..
..if there is no edge between the two, create an edge
v1.addEdge(<label3>,v2,<key3>,<value3>)

如果顶点是新创建的,则代码可以正常工作,并且边也会在两个顶点之间创建。但如果顶点已经存在于数据库中,则不会创建边。我发现这两种情况的不同之处在于,v1 和 v2 在新创建时属于“StandardVertex”类型,而在它们已经存在时属于“CacheVertex”类型。'addEdge' 在这两种情况下都是有效的方法。然而,边缘并没有被创造出来。

4

1 回答 1

0

您是否尝试在 v1 上添加边缘后提交事务?

于 2017-06-29T13:01:11.770 回答