通過 annotation(註解)來對映 hibernate 實體的,基於 annotation 的 hibernate 主鍵標識為@id
, 其生成規則由@generatedvalue
設定的。這裡的@id
和@generatedvalue
都是 jpa 的標準用法。
jpa 提供的四種標準用法為table、sequence、identity、auto
。
具體說明如下:
用法:
@id
@generatedvalue(strategy = generationtype.identity)
private long custid;
oracle 不支援自增,所以用序列用法:
@id
@generatedvalue
(strategy = generationtype.sequence,generator=
"payablemoney_seq"
)@sequencegenerator
(name=
"payablemoney_seq"
, sequencename=
"seq_payment"
)private long custid;
//@sequencegenerator原始碼中的定義
@target()
@retention(runtime)
public @inte***ce sequencegenerator
用法:
@id
@generatedvalue(strategy = generationtype.auto)
private long custid;
用法:
@id
@generatedvalue
(strategy = generationtype.table, generator=
"payablemoney_gen"
)@tablegenerator
(name =
"pk_gen"
, table=
"tb_generator"
, pkcolumnname=
"gen_name"
, valuecolumnname=
"gen_value"
, pkcolumnvalue=
"payablemoeny_pk"
, allocationsize=1)
private long custid;
//@tablegenerator的定義:
@target()
@retention(runtime)
public @inte***ce tablegenerator ;
} //這裡應用表tb_generator,定義為 :
create table tb_generator (
id number not null,
gen_name varchar2(255) not null,
gen_value number not null,
primary key(id)
)
JPA中的主鍵生成策略
通過annotation 註解 來對映hibernate實體的,基於annotation的hibernate主鍵標識為 id,其生成規則由 generatedvalue設定的.這裡的 id和 generatedvalue都是jpa的標準用法。jpa提供的四種標準用法為table,sequence,i...
JPA中的主鍵生成策略
通過annotation 註解 來對映 hibernate 實體的,基於annotation 的hibernate 主鍵標識為 id,其生成規則由 generatedvalue 設定的.這裡的 id 和 generatedvalue 都是jpa 的標準用法。jpa提供的四種標準用法為 table,s...
JPA 主鍵生成策略
hibernate主鍵標識為 id,其生成規則由 generatedvalue設定的 generatedvalue註解的strategy屬性指定具體的策略基本使用的有四種策略規則 表示自增策略,主鍵由資料庫生成 主要是自動增長型 比如 mysql可以在建立表時宣告 auto increment 來指...