3 JPA中的主鍵生成策略

2021-09-25 01:22:25 字數 1815 閱讀 5751

通過 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 來指...