无法将getEdge添加到janusgraph' cacheVertex'

时间:2017-06-29 10:21:11

标签: gremlin tinkerpop janusgraph

我在我的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>)

如果新创建了顶点,则代码可以正常工作,并且还会在两个顶点之间创建边。但是如果顶点已经存在于DB中,则边缘不会被创建。我在两种情况之间可以找到的差异是v1和v2属于&#39; StandardVertex&#39;在新创建时键入并且它们是“CacheVertex”。当它们已经存在时输入。 &#39; addEdge&#39;在这两种情况下都是有效的方法。然而,边缘并没有被创造出来。

1 个答案:

答案 0 :(得分:0)

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