在OrientDB

时间:2016-03-25 03:42:34

标签: orientdb-2.1

这是我的代码:

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

Here是相同的快照。

然后,我遇到了this警告:

  

警告:命令'create edge type'知道'作为'E'的子类'   必须在活动交易之外执行:交易将   在它之后立即承诺并重新开放。要避免此行为执行   它在事务之外(db = test)

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

1 个答案:

答案 0 :(得分:2)

您正在减少架构,因此OrientDB会在您第一次创建顶点/边时为您创建类。在这种情况下,Edge类'知道'。您可以通过在开头创建类,或者在事务范围之外创建类来避免这种情况。尝试在代码之前执行此操作,只需执行一次:

OrientGraphNoTx graph = new OrientGraphNoTx(url);
graph.createEdgeType("knows");
graph.shutdown();