hibernate的主鍵生成策略

2021-08-26 21:22:49 字數 918 閱讀 8761

主鍵生成策略是指

1、native

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

2、assigned

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

3、increment

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

4、sequence

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

name_seq(oracle中很常用)

5、identity

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

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...