Hibernate主鍵

1、選擇主鍵
備選的鍵是能夠用來識別表中一個特定行的一列或者一組列。要變成主鍵,備選鍵必須滿足下列屬性:
1)它的值(對於備選鍵的任意列而言)永遠不爲空。
2)每一行都有唯一的值。
3)一個特定行的值永遠不變。
2、選擇鍵生成器
Hibernate有幾個內建的標識符生成策略。
生成器名稱:native
選項:無
生成器描述:native同一性生成器挑選其他同一性生成器,如identity、sequence或者hilo,取決於底層數據庫的能力。使用這個生成器保證映射元數據可以移植到不同的數據庫管理系統。
生成器名稱:identity
選項:無
生成器描述:這個生成器支持DB2、MySQL、MS SQL Server、Sybase和HypersonicSQL中的同一性列。返回的標識符類型爲long、short或者int
生成器名稱:sequence
選項:sequence,parameters
生成器描述:這個生成器在DB2、PostgreSQL、Oracle、SAPDB或者Mckoi中創建一個序列;或者使用InterBase中的一個生成器。返回的標識符類型爲long、short或者int。如果創建序列的其他設置要被添加到DDL,就使用sequence選項給序列定義一個目錄名稱(默認是hibernate_sequence)和parameters。
生成器名稱:increment
選項:無
生成器描述:Hibernate啓動時,這個生成器讀取表的最大(數字)主鍵列值,並且每次插入一個新行時值就增加1。生成的標識符類型爲long、short或者int。如果單服務器的Hibernate應用程序對數據庫具有排它性訪問時,這個生成器特別有效,但不應該被用於任何其他場合。
生成器名稱:hilo
選項:table,column,max_lo
生成器描述:高/低位算法是生成long類型標識符的一種高效的方法,給定表和列(默認時,分別爲hibernate_unique_key和next)作爲高值源。高/低位算法生成僅對特定數據庫唯一的標識符。這個生成器每次獲取高值時總要使用一個單獨的數據庫連接,因此它不受用戶提供的數據庫連接支持。換句話說。別把它與sessionFactory.openSession(myConnection)共用。
生成器名稱:seqhilo
選項:sequence,parameters,max_lo
生成器描述:這個生成器的作用就像一般的hilo生成器,除了它使用一個具名的數據庫序列來生成高值之外。
生成器名稱:uuid
選項:separator
生成器描述:這個生成器是一個128位的UUID(生成String類型的標識符的一種算法,在網絡內部唯一)。IP地址與一個唯一的時間戳結合使用。
生成器名稱:guid
選項:無
生成器描述:這個生成器在MySQL和SQL服務器中提供一個數據庫生成的全局唯一的標識符字符串。
生成器名稱:select
選項:key
生成器描述:這個生成器獲取由數據庫觸發器分配的一個主鍵,它按某些唯一鍵選擇行並獲取主鍵值。這個策略需要另一個唯一的備選鍵列,且key選項必須被設置成唯一鍵列的名稱。
發佈了13 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章