2014-04-07 54 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()手動打開序列並直接操作。