1、assign:適合於應用程式維護的自然主鍵。
2、increment:**主鍵,適合於所有資料庫,由hibernate維護主鍵自增,和底層資料庫無關,但是不適合於2個或以上hibernate程序。
3、identity:**主鍵,適合於mysql或ms sql server等支援自增的dbms,主鍵值不由hibernate維護。
4、sequence:**主鍵,適合於oracle等支援序列的dbms,主鍵值不由hibernate維護,由序列產生。
5、native:**主鍵,根據底層資料庫的具體特性選擇適合的主鍵生成策略,如果是mysql或sqlserver,選擇identity,如果是oracle,選擇sequence。
6、hilo:**主鍵,hibernate把特定表的字段作為hign值,生成主鍵值。
7、uuid.hex:**主鍵,hibernate採用uuid 128位演算法生成基於字串的主鍵值。
hibernate主鍵生成
hibernate的主鍵生成器 generator元素 表示了乙個主鍵生成器,它用來為持久化類例項生成唯一的標識 1.1 程式設計師自己控制 assigned 1.2 資料庫控制 identity 標識列 自動增長 sequence 1.3 hibernate控制 increment uuid uu...
Hibernate主鍵自動生成的幾種常用型別
1.assigned 主鍵由資料庫內部生成,無需hibernate干預。2.hilo 需要額外資料庫表儲存主鍵生成歷史狀態。3.increment 在例項中維持乙個變數,以儲存當前最大值。多例項訪問時可能會出錯。4.identity 採用資料庫提供的生成機制,如sql server mysql中自增...
Hibernate中常用的主鍵生成策略
主鍵,可以分為自然主鍵和 主鍵。自然主鍵表示 採用具有業務邏輯含義的字段作為表的主鍵。比如在使用者資訊表中,採用使用者的身份證號碼作為主鍵。但是這樣一來,隨著業務邏輯的變化,主鍵就有可能要更改。比如,假設哪天身份證號碼公升級成19,2位,那。主鍵 在表中人為的增加乙個字段,該字段並沒有表示任何的業務...