Hibernate generator小结
“assigned”?
???
主鍵由外部程序負責生成,在?? save()?? 之前指定一個。????
?????
???
“hilo”?
???
通過hi/lo?? 算法實現的主鍵生成機制,需要額外的數據庫表或字段提供高位值來源。?????
?????
???
“seqhilo”?
???
與hilo?? 類似,通過hi/lo?? 算法實現的主鍵生成機制,需要數據庫中的?? Sequence,適用于支持?? Sequence?? 的數據庫,如Oracle。?????
?????
???
“increment”?
???
主鍵按數值順序遞增。此方式的實現機制為在當前應用實例中維持一個變量,以保存著當前的最大值,之后每次需要生成主鍵的時候將此值加1作為主鍵。這種方式可能產生的問題是:不能在集群下使用。?????
?????
???
“identity”?
???
采用數據庫提供的主鍵生成機制。如DB2、SQL?? Server、MySQL?? 中的主鍵生成機制。?????
?????
???
“sequence”?
???
采用數據庫提供的?? sequence?? 機制生成主鍵。如?? Oralce?? 中的Sequence。?????
?????
???
“native”?
???
由?? Hibernate?? 根據使用的數據庫自行判斷采用?? identity、hilo、sequence?? 其中一種作為主鍵生成方式。?
???
?????
???
“uuid.hex”?
???
由?? Hibernate?? 基于128?? 位?? UUID?? 算法?? 生成16?? 進制數值(編碼后以長度32?? 的字符串表示)作為主鍵。
???
???
“uuid.string”?
???
與uuid.hex?? 類似,只是生成的主鍵未進行編碼(長度16),不能應用在?? PostgreSQL?? 數據庫中。
?????
???
“foreign”?
???
使用另外一個相關聯的對象的標識符作為主鍵。
<id>元素中的<generator>用來為該持久化類的實例生成唯一的標識,hibernate提供了很多內置的實現。
Increment:由hibernate自動遞增生成標識符,用于為long, short或者int類型生成唯一標識。?
identity :由底層數據庫生成標識符(自動增長),返回的標識符是 long, short 或者int類型的。
sequence :hibernate根據底層數據庫序列生成標識符,返回的標識符 是long, short或者 int類型的。
hilo???? :使用一個高/低位算法來高效的生成long, short 或者int類型的標識符。
uuid.hex :用一個128-bit的UUID算法生成32位字符串類型的標識符。?
native?? :根據底層數據庫的能力選擇identity, sequence 或者hilo中的一個。?
assigned :讓應用程序在save()之前為對象分配一個標示符。?
foreign :使用另外一個相關聯的對象的標識符。和<one-to-one>聯合一起使用。
總結
以上是生活随笔為你收集整理的Hibernate generator小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 代表建议春节假期至9天:取消调休制度 法
- 下一篇: hibernate 出现Could no