2014-04-07 3 views
2

Berkeley 데이터베이스의 기본 키를 자동으로 증가시키고 싶습니다. @PrimaryKey (sequence = "Id")를 사용합니다. 괜찮 았어. 하지만 다른 데이터를 입력 할 때 순서가 잘못되었습니다. 예를 들어 database.put을 실행할 때 기본 키는 "1"이지만 다음에 "101"이고 다음에 "201"입니다. 이것은 내 코드입니다. 추가 할 것이 있습니까? 나는 + SequenceConfig를 사용하지 않았다. config = new SequenceConfig(); config.setAllowCreate (true) ;. 그것을 사용해야합니까. 도와주세요.Berkeley Database Java Edition에서 기본 키 자동 증가

@PrimaryKey (시퀀스 = "ID")

긴 ID; 문자열 이름;

Login_Audit(String name) 
{ 

     this.name = name; 
    } 

답변

0

동일한 값을 두 번 반환하면 시퀀스가 ​​잘못됩니다. 시퀀스의 값이 연속적이어야한다는 요구 사항은 없습니다. 연속 번호를 얻지 못하는 이유는 아마도 BDB JE가 멀티 스레딩을 효율적으로 처리하는 방법 일 것입니다. 즉, 시퀀스에 대한 핸들을 열면 핸들에 의해 독점적으로 사용되는 값 범위가 "사전 할당"되어 매번 비싼 데이터베이스 잠금 작업을 수행하지 않고도 새로운 가치를 얻을 수 있습니다.

ID의 실제 값을 고려하지 않고 (선호되는 옵션) Database.openSequence()을 사용하여 수동으로 열어 직접 조작 할 수 있습니다.