主鍵增長策略
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...