0

这是我的代码:

 OrientVertex luca = graph.addVertex(null);
 luca.setProperty("name", "John" + Integer.toString(i));

 OrientVertex marko = graph.addVertex(null);
 marko.setProperty("name", "Van Ness Ave." + Integer.toString(i + 1));

 OrientEdge lucaKnowsMarko = graph.addEdge(null, luca, marko, "knows");
 graph.commit();

是相同的快照。

然后,我遇到了这个警告:

警告:命令'create edge type 'knows' as subclass of 'E'必须在活动事务之外执行:事务将被提交并在它之后重新打开。为了避免这种行为,在事务之外执行它(db=test)

谷歌搜索这个问题,似乎这个问题与非事务性和事务性数据库操作有关。

4

1 回答 1

2

您使用的模式较少,因此 OrientDB 在您第一次创建顶点/边时为您创建类。在这种情况下,它适用于 Edge 类“知道”。您可以通过在开始时或在事务范围之外创建类来避免这种情况。尝试在您的代码之前执行此操作,仅一次:

OrientGraphNoTx graph = new OrientGraphNoTx(url);
graph.createEdgeType("knows");
graph.shutdown();
于 2016-03-25T17:44:24.630 回答