Hibernate識別符號生成器
“hilo”
通過hi/lo 演算法實現的主鍵生成機制,需要額外的資料庫表或欄位提供高位值來源。
“seqhilo”
與hilo 類似,通過hi/lo 演算法實現的主鍵生成機制,需要資料庫中的 Sequence,適用於支援 Sequence 的資料庫,如Oracle。
“increment”
主鍵按數值順序遞增。此方式的實現機制為在當前應用例項中維持一個變數,以儲存著當前的最大值,之後每次需要生成主鍵的時候將此值加1作為主鍵。這種方式可能產生的問題是:不能在叢集下使用。
“identity”
採用資料庫提供的主鍵生成機制。如DB2、SQL Server、MySQL 中的主鍵生成機制。
“sequence”
採用資料庫提供的 sequence 機制生成主鍵。如 Oralce 中的Sequence。
“native”
由 Hibernate 根據使用的資料庫自行判斷採用 identity、hilo、sequence 其中一種作為主鍵生成方式。
“uuid.hex”
由 Hibernate 基於128 位 UUID 演算法 生成16 進位制數值(編碼後以長度32 的字串表示)作為主鍵。
“uuid.string”
與uuid.hex 類似,只是生成的主鍵未進行編碼(長度16),不能應用在 PostgreSQL 資料庫中。
“foreign”
使用另外一個相關聯的物件的識別符號作為主鍵。
以下舉例:
1、指定引數的情況:
SEQ_CHILD
使用的是sequence,適合oracle資料庫;
2、對於sql server2000中的資料庫子增欄位,在配置檔案使用下列方法實現:
這裡主要是:identity:代表由sql server2000資料庫自己提供子增欄位.如果要hibernate自己提供,則用increment關鍵字來實現
3、如果表中的主鍵用字串型別:可以用hibernate自己提供的方法實現主鍵唯一:
使用的是uuid.hex: 採用128位的演算法來生成一個32位字串。最通用的一種方式。適用於所有資料庫。
1,increment 代理主鍵,由Hibernate自動以遞增方式生成識別符號,每次增量為1。 優點:不依賴於底層資料庫系統,適用於所有的資料庫系統。 缺點:只適用於單個Hibernate應用程式訪問同一個資料庫的場合,在叢集環境下不推薦使用。 2,identity 3,sequence 4,hilo 5,native 6,assigned |
相關文章
- 識別符號符號
- JavaScript 識別符號JavaScript符號
- 命令識別符號(轉)符號
- python的識別符號Python符號
- 06:合法 C 識別符號符號
- 《Effective Go》--空白識別符號Go符號
- oracle 識別符號規範Oracle符號
- aix 系統識別符號AI符號
- 使用去中心化識別符號 (DID) 作為識別符號元系統中心化符號
- Java資料型別、識別符號Java資料型別符號
- C語言-識別符號命名C語言符號
- 識別符號與關鍵字符號
- java基本無法-識別符號Java符號
- Oracle 12.2 長識別符號Oracle符號
- 標準HTML識別符號 (轉)HTML符號
- URI(統一資源識別符號)符號
- SCSS &父選擇器識別符號CSS符號
- Windows安全識別符號(SID)概述Windows符號
- 字串切片識別符號是什麼字串符號
- JavaSE 關鍵字和識別符號Java符號
- go——識別符號的命名規範Go符號
- 關鍵字、資料型別、識別符號資料型別符號
- JAVA-識別符號、變數、資料型別Java符號變數資料型別
- C++ 提示未宣告的識別符號C++符號
- java:識別符號 關鍵字 變數Java符號變數
- 1413: C語言合法識別符號C語言符號
- JavaScript生成GUID統一識別符號JavaScriptGUI符號
- ORA-00904: : 識別符號無效符號
- 名稱 ****不是有效的識別符號 sql符號SQL
- python:LEGB識別符號解析順序Python符號
- C#程式碼識別符號命名規範C#符號
- js如何生成唯一識別符號UUIDJS符號UI
- Java的識別符號與編碼規範Java符號
- 識別符號的命名規則和規範符號
- Java註釋,識別符號,資料型別,型別轉換Java符號資料型別
- 2.4.2 Step 1: 指定例項識別符號 (SID)符號
- C語言合法識別符號 hd 2024C語言符號
- 正規表示式g全域性匹配識別符號符號