通過以上的講述,不難總結出 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演算法...