幾種主鍵生成策略的比較

2021-05-10 15:06:36 字數 707 閱讀 1964

jpa可定義的生成策略有四種:table,sequence,,identity,auto。在選擇這四種主鍵生成策略時,有如下幾條建議。

l         sequence,identity兩種策略由於針對的是特殊的一些資料庫,所以如果在需求前期,未確定系統要支援的資料庫型別時,最好不要使用。因為一旦更改資料庫型別時,例如從oracle變更為mysql時,此時使用的sequence策略就不能使用了,這時候需要變更設定,會變得很麻煩。

l         auto自動生成策略雖然能夠自動生成主鍵,但主鍵的生成規則是jpa的實現者來確定的,一旦使用了這種策略,使用者沒有辦法控制,比如說初識值是多少,每次累加值是多少,這些只能靠jpa預設的實現來生成。對於比較簡單的主鍵,對主鍵生成策略要求少時,採用的這種方式比較好。

l         table生成策略是將主鍵的值持久化在資料庫中表中,因為只要是關係型的資料庫,都可以建立乙個表,來專門儲存生成的值,這樣就消除了不同資料庫之間的不相容性。另外,這種策略也可是設定具體的生成策略,又彌補了auto策略的不足。所以,這種策略既能保證支援多種資料庫,又有一定的靈活性,建議使用該策略。

l         若以上的4種主鍵生成策略仍不滿足需求,這時可以通過一定的規則來設定主鍵的值。例如利用uuid作為主鍵,也是常用的策略之一,此時就需要在程式中自動生成,然後設定到實體的主鍵上,而不能通過jpa的主鍵生成策略來實現了。

總之,在選擇主鍵生成策略時,要根據需求,選擇最合適的策略。

幾種主鍵生成策略的比較

通過以上的講述,不難總結出 jpa 可定義的生成策略有四種 table sequence,identity auto 在選擇這四種主鍵生成策略時,有如下幾條建議。l sequence identity 兩種策略由於針對的是特殊的一些資料庫,所以如果在需求前期,未確定系統要支援的資料庫型別時,最好不要...

Hibernate 生成主鍵的幾種策略

在進行資料庫設計的時候,經常會遇到主鍵如何設定的問題,有的資料庫本來就提供了乙個生成主鍵的策略,比如ms的access,ms sql server,它們都提供一種叫自增長型別,一般是長整型,從1開始,每插入一條記錄,該值就自動加1,但是會遇到乙個問題,當刪除乙個記錄,該值就不會再用,而在oracle...

主鍵生成策略

一共是13種,其中包括native native 對於 oracle 採用 sequence 方式,對於mysql 和 sql server 採用identity 自增主鍵生成機制 native就是將主鍵的生成工作交由資料庫完成,hibernate不管 很常用 uuid 採用128位的uuid演算法...