OrientDB 创建顶点类型

OrientDB create vertex type

我正在与 Java API 一起使用 OrientDB。 我有这个警告,但我不明白为什么:

The command 'create vertex type 'Users' as subclass of 'V'' must be executed outside an active transaction: the transaction will be committed and reopen right after it. To avoid this behavior execute it outside a transaction

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

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

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

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