Hibernate主鍵生成策略

2021-07-08 22:31:42 字數 1471 閱讀 3068

主鍵增長策略

increment===自增,每次增加1,

主鍵型別是long。short,int才能自增

優點:不依賴於底層資料庫,適用於所有資料庫。

但是不要用在多程序。

select  max(id) from user

indentity==適用於mysql,sqlserver等,不支援orcle

主鍵型別是數值

由底層資料庫生成識別符號

前提條件:資料庫支援自增長字段型別,比如mysql,sql server

sequence==

依賴於底層資料庫系統的序列

前提條件:需要資料庫支援序列機制,如orcle

hilo==高低位,由hibernate按照一種high/low演算法生成的識別符號

從資料庫特定表中獲取high值,需要建立額外的表(配置

之後,會在資料庫自動生成這個表),

hilo生成方法不依賴於底層資料庫,使用與任何資料庫。

數值型native==根據底層資料庫型別,自動選擇合適的策略

包括identity,sequence或hilo的一種。

主鍵型別數值型

assigned==表示由應用程式邏輯來負責生成主鍵識別符號

自己設定分配主鍵,

所以主鍵型別都可以

uuid==由hibernate基於128位唯一值產生演算法,

根據當前的裝置ip,時間,jvm啟動時間,

內部自增量等4個引數生成16進製制值作為主鍵,

主鍵型別==string型別  

foreign==在one-to-one關係中,

乙個表的主鍵由另乙個表的主鍵決定

student

對映復合主鍵==盡量避免,不用復合的

1,資料不穩定

2,效率不好

主鍵策略使用原則

針對orcle==主鍵是int/short/long 建議使用sequence,

主鍵是string,建議使用uuid或者assigned

針對mysql==主鍵是int/short/long 建議使用 increment  assigned

主鍵是字串  使用uuid assigned

針對sql  server==主鍵是int/short/long 建議使用 indentity  assigned

native   主鍵是字串  使用uuid assigned

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

hibernate主鍵生成策略

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