OrientDB创建顶点类型

时间:2015-12-25 17:07:15

标签: java orientdb orientdb-2.1

我正在使用带有Java API的OrientDB。 我有这个警告,我不明白为什么:

  

命令'create vertex type'Users'作为'V'的子类'必须在活动事务之外执行:事务将在其之后提交并重新打开。要避免此行为,请在事务外部执行

我的Java代码是:

OrientGraph graph = new OrientGraphFactory(databaseUrl).getTx();
graph.createVertexType(User.CLASS_NAME);
graph.createKeyIndex(User.MAIL_KEY, Vertex.class, new Parameter<>("type", "UNIQUE"),new Parameter<>("class", User.CLASS_NAME));
graph.commit();
graph.shutdown();

1 个答案:

答案 0 :(得分:3)

解决方案是使用与数据库的无事务连接。你的第一行应该是:

OrientGraphNoTx graph = new OrientGraphFactory(databaseUrl).getNoTx();

OrientGraphNoTx对象支持与OrientGraph相同的方法来创建顶点,边和类型。请注意,您向此对象发出的命令不会成为事务的一部分,并且会立即提交(因此您不需要提交的行。但仍需要关闭)。我建议你实现一种在启动时创建所需顶点和边缘类型的方法,这样就不会干扰正常操作。