JPA的主鍵生成策略

2021-08-20 00:11:25 字數 2206 閱讀 9462

所謂的主鍵生成策略就是,自動生成主鍵列值的策略

identity:id自增長策略。只能用於支援id自增長的資料庫。

@id

//identity就是強制使用id自增長策略,只能用於支援id自增長的資料庫

@generatedvalue(strategy=generationtype.identity)

@column(name="cust_id")

private long custid;// '客戶編號(主鍵)',

sequence:序列生成策略。指定使用sequence策略。和hibernate的xml一樣。如果在mysql裡面使用乙個表模擬序列,如果使用在oracle裡面直接使用序列。

用於有序列的資料庫,如oracle

@id

/** * strategy:設定策略的名字

* generator:指定使用哪個策略構造器

*/@generatedvalue(strategy=generationtype.sequence,generator="seq_cust")

/** *@sequencegenerator:用於宣告乙個序列 的策略構造器

* name:構造器的名字

* allocationsize:步長

* initialvalue:初始的大小

* sequencename:序列名(如果在mysql裡面就是序列模擬表的表名)

*/@sequencegenerator(name="seq_cust",allocationsize=1,initialvalue=1,sequencename="seq_customer")

//注意,如果屬性名和字段同名,可以不配置@column

@column(name="cust_id")

private long custid;// '客戶編號(主鍵)',

table策略,不管什麼資料庫,都是使用乙個表來模擬序列。(了解)

因為每建立乙個表就會生成另乙個序列表 太麻煩了

@id

/** * strategy:設定策略的名字

* generator:指定使用哪個策略構造器

* table策略:就是不管什麼資料庫使用乙個表來模擬序列。

* 由於mysql是沒有序列的,所有table策略和sequence是一樣。

*/@generatedvalue(strategy=generationtype.table,generator="table_cust")

/** *@tablegenerator:用於宣告乙個table策略 的策略構造器

* name:構造器的名字,唯一識別符號,用於讓@generatedvalue呼叫

* allocationsize:步長,每次增加的數

* initialvalue:初始的大小,id值等於設定的初始值+1

* 如果需要從1開始,那麼設定為0.

* sequencename:序列名(如果在mysql裡面就是序列模擬表的表名)

* 注意:主鍵值等於開始位置+1

*/@tablegenerator(name="table_cust",allocationsize=1,initialvalue=0,table="seq_customer")

//注意,如果屬性名和字段同名,可以不配置@column

@column(name="cust_id")

private long custid;// '客戶編號(主鍵)',

auto(了解):由框架決定根據不同的資料庫指定乙個策略。由於結果的不固定性。基本上沒有人使用。,有時候會生成乙個table策略,太不固定了

@id

/** * strategy:設定策略的名字

* generator:指定使用哪個策略構造器

*/@generatedvalue(strategy=generationtype.auto)

//注意,如果屬性名和字段同名,可以不配置@column

@column(name="cust_id")

private long custid;// '客戶編號(主鍵)',

JPA 主鍵生成策略

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

jpa設定自增主鍵 jpa主鍵生成策略

主鍵除了自己設定,還有很多種方法可以讓資料庫自動生成。將註解寫在實體類屬性上就可以獲得相應功能 註解 generatorvalue註解 jpa通用策略生成器 引數generationtype public enum generationtype table,特定表生成 見3 sequence,資料庫...

JPA中的主鍵生成策略

通過annotation 註解 來對映hibernate實體的,基於annotation的hibernate主鍵標識為 id,其生成規則由 generatedvalue設定的.這裡的 id和 generatedvalue都是jpa的標準用法。jpa提供的四種標準用法為table,sequence,i...