溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hibernate主鍵的生成方式

發(fā)布時間:2021-08-24 18:23:23 來源:億速云 閱讀:134 作者:chen 欄目:編程語言

這篇文章主要講解了“Hibernate主鍵的生成方式”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Hibernate主鍵的生成方式”吧!

1 increment:

當向數(shù)據(jù)庫中插入新的紀錄時,Hibernate主鍵會自動增長1。increment主鍵生成方式的特點是與底層數(shù)據(jù)庫無關(guān)性,大部分數(shù)據(jù)庫如 Mysql,MSSQL 和ORACLE等都支持increament生成方式。increment方式的不足之處是當多個線程并發(fā)對數(shù)據(jù)庫表進行寫操作時,可能出現(xiàn)相同的主鍵值,發(fā)生主鍵重復(fù)的沖突,因此多線程并發(fā)操作時,不應(yīng)該使用此方法

2 identity:

使用數(shù)據(jù)庫提供的主鍵生成機制,自動為主鍵賦值,indentity方式的特點是與底層數(shù)據(jù)庫無關(guān)性,不便于不同數(shù)據(jù)庫之間的移植。identity的優(yōu)點是不會發(fā)生 increment方式的并發(fā)錯做問題。

3 native:

由hibernate根據(jù)不同的數(shù)據(jù)庫方言,自動選擇不同的主鍵生成方式,native的優(yōu)點是與底層性無關(guān),便于不同數(shù)據(jù)庫之間的移植,由Hibernate根據(jù)不同數(shù)據(jù)庫選擇主鍵的生成方式

4 uuid.hex:

采用基于128位的算法生成***值,并編制成32位長度的***字符串作為主鍵值,uuid.hex的優(yōu)點是支持大部分數(shù)據(jù)庫,缺點就是要占用較大的存儲空間。

5 uuid.string

使用UUID算法,UUID被編碼為一個16個字符長的任意ASCII字符組成的字符串。不能再PostgreSQL數(shù)據(jù)庫中使用。uuid.string同uuid.hex類似,需要占很大的存儲空間。

6 hilo:

通過一定的算法生成Hibernate主鍵主鍵,需要一個表來保存額外的主鍵信息。這樣生成的標識符只在特定的數(shù)據(jù)庫是***的,在使用JTA(Java分布式事務(wù)) 獲得鏈接或用戶自定義提供的鏈接中,不要使用這種生成器。hilo方式需要維護表信息,因此對數(shù)據(jù)的影響的要率會造成一定影響。

7 sequence:

在ORACLE等數(shù)據(jù)庫中使用sequence生成主鍵。sequence的特點是于數(shù)據(jù)庫的相關(guān)性,seqhio要求底層能支持sequence,列如Oracle。

8 seqhio:

通過一定的算法來生成Hibernate主鍵主鍵,采用給定的數(shù)據(jù)庫的sqlsequence開生成外鍵。ceqhio方式的特點外還具有Hil哦的大。

感謝各位的閱讀,以上就是“Hibernate主鍵的生成方式”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對Hibernate主鍵的生成方式這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI