当使用图形API创建多个顶点时,Orientdb 3.0会出现序列问题

时间:2017-05-16 05:55:49

标签: orientdb

我在OrientDB中看到了这个有趣的行为。

架构 https://github.com/careerscale/orientdb-demo/blob/master/orientdb-java-sample/src/test/resources/test.sql

架构定义在这里。我希望“id”字段作为序列自动生成。如果我一次只生成一个顶点,它工作正常,但如果我有生成其中多个顶点的代码,它会中断。我写了两个测试用例来重现这种行为。

 CREATE CLASS BV EXTENDS V;
 CREATE PROPERTY BV.createdDate DATETIME (MANDATORY TRUE, default 
 sysdate("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"));
 CREATE PROPERTY BV.updatedDate DATETIME (MANDATORY FALSE); 

 CREATE CLASS User EXTENDS BV;
 CREATE SEQUENCE userIdSequence TYPE ORDERED;

CREATE PROPERTY User.id LONG (MANDATORY TRUE, default 
"sequence('userIdSequence').next()");
CREATE PROPERTY User.name STRING (MANDATORY TRUE, MIN 4, MAX 50);

测试失败: https://github.com/careerscale/orientdb-demo/blob/master/orientdb-java-sample/src/test/java/com/orientdb/samples/test/GraphApiIdBugTest.java

第一次测试,虽然通过(因为没有添加断言),但会生成具有相同id的所有顶点(这是错误的)。

第二次测试失败,但有例外 Test results for quick review

我认为代码应该正常工作,但看起来它不起作用。

1 个答案:

答案 0 :(得分:1)

使用3.0版本的最新快照在orientDB中解决此错误。它工作正常。 在这里更新票证,以便其他遇到此jira票的人注意到这一点。