2014-04-07 34 views
2

我想在伯克利数据库中自动增加主键。我使用@PrimaryKey(sequence =“Id”)。它运行良好。但是当我输入另一个数据时,顺序出错了。作为一个例子,当我执行database.put主键是“1”,但下一次是“101”,下一次是“201”。这是我的代码。有什么需要补充的吗? I +没有使用SequenceConfig config = new SequenceConfig(); config.setAllowCreate(真);.我需要使用它吗?请帮帮我。伯克利数据库Java版自动增加主键

@PrimaryKey(sequence =“ID”)

long id; 字符串名称;

Login_Audit(String name) 
{ 

     this.name = name; 
    } 

回答

0

该序列只会是错误的,如果它曾经两次返回相同的值。没有要求序列的值应该是连续的,也不应该依赖它们。你没有获得连续数字的原因可能是BDB JE高效地处理多线程的方式:打开一个序列的句柄将“预先分配”一系列值,以便专用于该句柄,以便它可以给出您无需每次执行昂贵的数据库锁定操作即可获得新值。

您可以不关心您的ID的实际值(这是首选选项),也可以使用Database.openSequence()手动打开序列并直接操作。