2

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

@PrimaryKey(sequence="ID")

长身份证;字符串名称;

 Login_Audit(String name) 
 {

         this.name = name;
     }
4

1 回答 1

0

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

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

于 2014-04-08T11:43:51.060 回答