Hibernate的主鍵生成策略

2022-10-10 20:03:19 字數 942 閱讀 7950

主鍵生成策略是指 

1、 native

對於 oracle 採用 sequence 方式,對於mysql 和 sql server 採用identity(自增主鍵生成機制),native就是將主鍵的生成工作交由資料庫完成,hibernate不管(很常用)

2、assigned

在插入資料的時候主鍵由使用者自己新增,hibernate也不管(很常用)

3、increment

插入資料的時候hibernate會給主鍵新增乙個自增的主鍵,但是乙個hibernate例項就維護乙個計數器,所以在多個例項執行的時候不能使用這個方法

4、sequence

呼叫資料庫的sequence來生成主鍵,要設定序列名,不然hibernate無法找到:

name_seq(oracle中很常用)

5、identity

使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定sequence(mysql 和 sql server 中很常用)

6、hilo

使用hilo生成策略,要在資料庫中建立一張額外的表,預設表名為hibernate_unique_key,預設欄位為integer型別,名稱是next_hi(比較少用)

我們也可以自己設定自定義的表名和欄位名

7、sehilo

通過hilo演算法實現,但是主鍵歷史儲存在sequence中,適用於支援 sequence 的資料庫,如 oracle(比較少用)

8、uuid.hex

hibernate會算出乙個128位的唯一值插入

9、uuid.string

hibernate會算出乙個16位的值插入

10、foreign

使用外部表的字段作為主鍵

11、select

使用觸發器生成主鍵(主要用於早期的資料庫主鍵生成機制,少用)

hibernate主鍵生成

hibernate的主鍵生成器 generator元素 表示了乙個主鍵生成器,它用來為持久化類例項生成唯一的標識 1.1 程式設計師自己控制 assigned 1.2 資料庫控制 identity 標識列 自動增長 sequence 1.3 hibernate控制 increment uuid uu...

Hibernate主鍵生成策略

hibernate主鍵生成策略 1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援...

Hibernate主鍵生成策略

1 自動增長identity 適用於mysql db2 ms sql server,採用資料庫生成的主鍵,用於為long short int型別生成唯一標識 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定sequence...