2017-05-16 1 views
0

OrientDB에서이 재미있는 동작이 나타납니다.Orientdb 3.0 그래프 API로 여러 정점을 만들 때 시퀀스에 문제가 발생했습니다

스키마 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

1 차 테스트,하지만 패스 (추가 어떤 주장이 있기 때문에), (잘못) 같은 ID를 가진 모든 정점을 생성하지 않습니다.

2 차 시험은 내가 코드가 작동을해야한다 생각 예외 Test results for quick review

실패,하지만이 작동하지 않는 것 같습니다.

+0

죄송합니다. 무엇을 의미합니까? 스크린 샷을 보면 모든 ID가 서로 다른 것을 알 수 있습니다. –

+0

제 5 열을보십시오. 그 시퀀스와 함께 자동 증분과 ID 열입니다 –

+0

당신은 임베디드 데이터베이스에서 동일한 문제가 있습니까? 너 해볼래? –

답변

1

이 버그는 최신 버전 3.0의 snapshot으로 orientDB에서 해결되었습니다. 잘 작동합니다. 티켓을 여기에서 업데이트하면이 jira 티켓을 우연히 만난 다른 사람들이이를 알 수 있습니다.

관련 문제