hibernate的主鍵增長策略

2021-07-22 16:42:55 字數 1240 閱讀 1452

① increment

自增,每次增長1, 適用於所有資料庫

. 但是不要使用在多程序

,主鍵型別是數值型

select max(id) from student

② identity

自增,每次增長1, 適用於支援

identity

的資料(mysql,sql server),

主鍵型別是數值

③ sequence

④ native

會根據資料型別來選擇,使用identity,sequence ,hilo

select hibernate_sequence.nextval from dual

主鍵型別是數值long , short ,int

⑤ hilo

hilo識別符號生成器由

hibernate

按照一種

high/low

演算法生成識別符號

用法:my_hi_value

next_value

⑥ uuid

會根據uuid演算法,生成

128-bit

的字串

主鍵屬性型別不能是數值型,而是字串型

⑦ assigned

使用者自己設定主鍵值,所以主鍵屬性型別可以是數值,字串

⑧ 對映復合主鍵

⑨ foreign

在one-to-one的關係中,有另一張表的主鍵

(person)

來決定 自己主鍵/外來鍵

( idcard)

給出乙個簡單原則:

針對oracle [主鍵是

int/long/short

建議使用

sequence]

主鍵是string

使用uuid

或者assinged

針對 mysql [主鍵是

int/long/short

建議使用

increment/assigend ,

如果是字串

uuid/assigned]

針對 sql server [主鍵是

int/long/short

建議使用

identity/native/assinged ,

如果主鍵是字串,使用

uuid/assigned ]

one-to-one 又是基於主鍵的則使用

foreign

主鍵增長策略

主鍵增長策略 assigned 1.表示手動指定主鍵值 2.不管資料庫中是否支援自動增長語句,該策略都要求程式設定主鍵值 3.該策略是沒有元素時的預設策略 4.容易出現重複的主鍵 identity 1.適用於mysql,ms sqlserver等支援自動增長語句的資料庫,不支援oracle 2.適用...

主鍵增長策略

1.資料庫自增長序列或字段 外鏈轉存失敗,源站可能有防盜煉機制,建議將儲存下來直接上傳 img qdane5we 1610438478113 c users yujinling desktop 筆記 1.png 優點 1 簡單,方便,效能可以接受。2 數字id天然排序,對分頁或者需要排序的結果很有幫...

通用mapper主鍵增長策略

資料庫支援自增 常見的如 mysql,sqlserver 建議直接指定資料庫 id keysql dialect identitydialect.mysql private integer id 資料庫不支援自增 常見的如 oracle id keysql sql select seq nextva...