通過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//@tablegenerator的定義:@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;
@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...