2014-02-12 60 views
0

我正在嘗試使用hibernate生成的值策略在我的表中添加序列號。我的表格列中已經有數字1和2,現在我想從3開始編號。休眠中的生成值策略

我應該使用哪種類型來滿足此要求?我可以這樣做嗎?或者在所有情況下休眠只會從數字0開始?

@GeneratedValue (strategy = GenerationType.TABLE) 
public void setId(int id) { 
    this.id = id; 
} 

回答

1

如果使用TABLE策略,它將以表中存儲的當前值開始,用於生成對應於實體的ID。

如果使用SEQUENCE策略,它將從序列的當前值開始。

如果使用IDENTITY策略,它將詢問數據庫的下一個ID(該列應該自動增加),並且數據庫不應返回已使用的ID。

+0

你是說通過使用序列策略,休眠會根據當前值分配的主鍵生成下一個數字? – Zeus

+0

所以如果我使用表格,那麼它會考慮我的最大身份證號碼?並添加下一個數字,當我在同一個表中插入一行? –

+0

@Zeus:沒有。我說它使用序列來生成ID,並且序列的當前值驅動下一個ID將會是什麼,而不是該表的最大ID。 –