您好,登錄后才能下訂單哦!
這篇文章主要講解了“Hibernate主鍵的生成方式”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“Hibernate主鍵的生成方式”吧!
1 increment:
當向數據庫中插入新的紀錄時,Hibernate主鍵會自動增長1。increment主鍵生成方式的特點是與底層數據庫無關性,大部分數據庫如 Mysql,MSSQL 和ORACLE等都支持increament生成方式。increment方式的不足之處是當多個線程并發對數據庫表進行寫操作時,可能出現相同的主鍵值,發生主鍵重復的沖突,因此多線程并發操作時,不應該使用此方法
2 identity:
使用數據庫提供的主鍵生成機制,自動為主鍵賦值,indentity方式的特點是與底層數據庫無關性,不便于不同數據庫之間的移植。identity的優點是不會發生 increment方式的并發錯做問題。
3 native:
由hibernate根據不同的數據庫方言,自動選擇不同的主鍵生成方式,native的優點是與底層性無關,便于不同數據庫之間的移植,由Hibernate根據不同數據庫選擇主鍵的生成方式
4 uuid.hex:
采用基于128位的算法生成***值,并編制成32位長度的***字符串作為主鍵值,uuid.hex的優點是支持大部分數據庫,缺點就是要占用較大的存儲空間。
5 uuid.string
使用UUID算法,UUID被編碼為一個16個字符長的任意ASCII字符組成的字符串。不能再PostgreSQL數據庫中使用。uuid.string同uuid.hex類似,需要占很大的存儲空間。
6 hilo:
通過一定的算法生成Hibernate主鍵主鍵,需要一個表來保存額外的主鍵信息。這樣生成的標識符只在特定的數據庫是***的,在使用JTA(Java分布式事務) 獲得鏈接或用戶自定義提供的鏈接中,不要使用這種生成器。hilo方式需要維護表信息,因此對數據的影響的要率會造成一定影響。
7 sequence:
在ORACLE等數據庫中使用sequence生成主鍵。sequence的特點是于數據庫的相關性,seqhio要求底層能支持sequence,列如Oracle。
8 seqhio:
通過一定的算法來生成Hibernate主鍵主鍵,采用給定的數據庫的sqlsequence開生成外鍵。ceqhio方式的特點外還具有Hil哦的大。
感謝各位的閱讀,以上就是“Hibernate主鍵的生成方式”的內容了,經過本文的學習后,相信大家對Hibernate主鍵的生成方式這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。