@generatedvalue,jpa通用策略生成器 。
jpa提供的四種標準用法為table,sequence,identity,auto.
table:使用乙個特定的資料庫**來儲存主鍵。
sequence:根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。
@id@generatedvalue(strategy = generationtype.sequence,generator="payablemoney_seq")
@sequencegenerator(name="payablemoney_seq", sequencename="seq_payment")
identity:主鍵由資料庫自動生成(主要是自動增長型)
@id@generatedvalue(strategy = generationtype.identity)
auto:主鍵由程式控制。
@id@generatedvalue(strategy = generationtype.auto)
@genericgenerator註解配合@
generatedvalue一起使用,@generatedvalue註解中的"generator"屬性要與@genericgenerator註解中name屬性一致,strategy屬性表示hibernate的主鍵生成策略
@id@generatedvalue(generator="increment")
@genericgenerator(name="increment", strategy = "increment")
native: 對於 oracle 採用 sequence 方式,對於mysql 和 sql server 採用identity(自增主鍵生成機制),native就是將主鍵的生成工作交由資料庫完成,hibernate不管(很常用)。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "native")
uuid: 採用128位的uuid演算法生成主鍵,uuid被編碼為乙個32位16進製制數字的字串。占用空間大(字串型別)。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "uuid")
hilo: 使用hilo生成策略,要在資料庫中建立一張額外的表,預設表名為hibernate_unique_key,預設欄位為integer型別,名稱是next_hi(比較少用)。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "hilo")
assigned: 在插入資料的時候主鍵由程式處理(很常用),這是 元素沒有指定時的預設生成策略。等同於jpa中的auto。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "assigned ")
identity: 使用sql server 和 mysql 的自增欄位,這個方法不能放到 oracle 中,oracle 不支援自增字段,要設定sequence(mysql 和 sql server 中很常用); 等同於jpa中的indentity。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "identity ")
sequence: 呼叫底層資料庫的序列來生成主鍵,要設定序列名,不然hibernate無法找到。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "sequence", parameters =
increment: 插入資料的時候hibernate會給主鍵新增乙個自增的主鍵,但是乙個hibernate例項就維護乙個計數器,所以在多個例項執行的時候不能使用這個方法。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "increment")
guid: 採用資料庫底層的guid演算法機制,對應mysql的uuid()函式,sql server的newid()函式,oracle的rawtohex(sys_guid())函式等。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "guid")
uuid.hex: 看uuid,建議用uuid替換。
@generatedvalue(generator = "***")@genericgenerator(name = "***", strategy = "uuid.hex")
Hibernate 註解 主鍵生成策略
1 hibernate註解 annoation 使用id主鍵生成主要要使用到以下幾個註解 id,generatedvalue,genericgenerator。generatedvalue的作用是jpa的預設實現自定義主鍵生成策略,genericgenerator是hibernate在jpa的基礎上...
hibernate註解主鍵生成策略
generatedvalue,jpa通用策略生成器 jpa提供的四種標準用法為table,sequence,identity,auto.table 使用乙個特定的資料庫 來儲存主鍵。sequence 根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。id generatedvalue strat...
hibernate主鍵生成
hibernate的主鍵生成器 generator元素 表示了乙個主鍵生成器,它用來為持久化類例項生成唯一的標識 1.1 程式設計師自己控制 assigned 1.2 資料庫控制 identity 標識列 自動增長 sequence 1.3 hibernate控制 increment uuid uu...