JPA中的主鍵生成策略

2022-09-06 21:48:26 字數 1827 閱讀 8922

通過annotation(註解)來對映

hibernate

實體的,

基於annotation

的hibernate

主鍵標識為

@id,

其生成規則由

@generatedvalue

設定的.

這裡的@id

和@generatedvalue

都是jpa

的標準用法。

jpa提供的四種標準用法為

table,sequence,identity,auto

具體說明如下:

identity:主鍵由資料庫自動生成(主要是自動增長型)

用法:

@id  

@generatedvalue(strategy =generationtype.identity)

private long custid;

sequence:根據底層資料庫的序列來生成主鍵,條件是資料庫支援序列。

用法:

@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

auto:主鍵由程式控制

用法:

@id  

@generatedvalue(strategy =generationtype.auto)

private long custid;

table:使用乙個特定的資料庫**來儲存主鍵

用法:

@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***cetablegenerator ;  

}//這裡應用表

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 主鍵生成策略

hibernate主鍵標識為 id,其生成規則由 generatedvalue設定的 generatedvalue註解的strategy屬性指定具體的策略基本使用的有四種策略規則 表示自增策略,主鍵由資料庫生成 主要是自動增長型 比如 mysql可以在建立表時宣告 auto increment 來指...

JPA的主鍵生成策略

所謂的主鍵生成策略就是,自動生成主鍵列值的策略 identity id自增長策略。只能用於支援id自增長的資料庫。id identity就是強制使用id自增長策略,只能用於支援id自增長的資料庫 generatedvalue strategy generationtype.identity colu...