这是我的代码:
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)
谷歌搜索这个问题,似乎这个问题与非事务性和事务性数据库操作有关。
答案 0 :(得分:2)
您正在减少架构,因此OrientDB会在您第一次创建顶点/边时为您创建类。在这种情况下,Edge类'知道'。您可以通过在开头创建类,或者在事务范围之外创建类来避免这种情况。尝试在代码之前执行此操作,只需执行一次:
OrientGraphNoTx graph = new OrientGraphNoTx(url);
graph.createEdgeType("knows");
graph.shutdown();