1 .increment:適用於short,int,long作為主鍵,不是使用資料庫自動增長機制
這是hibernate中提供的一種增長機制
在程式執行時,先進行查詢:select max(id) from user;
再進行插入:或得最大值+1作為新的記錄的主鍵
問題:不能在集群環境下或者有併發訪問的情況下使用
2 .identity 適用於short,int,long作為主鍵,但是這個必須使用在有自動增長機制的資料庫中,採用的是資料庫底層的自動增長機制
底沉使用的是資料庫的自動增長(auto_increment),像oracle資料庫沒有自動增長
3.sequence 適用於short,int,long作為主鍵,底層使用的是序列的增長方式
4.native本地策略,根據底層資料庫不同,自動選擇適用於該資料庫的生成策略(short int long)
如果底層使用的是mysql沒資料庫相當於 identity
如果使用的oracle資料庫,相當於sequence
5.uuid,適用於char,varchar型別作為主鍵.
使用隨機的字串作為主鍵
6.assigned 主鍵自己維護,不使用hibernate維護
總結:使用時,如果主鍵是short,int long型別,採用native主鍵生成策略,如果是字串,使用uuid主鍵生成策略
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...