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

2021-10-13 03:16:44 字數 1918 閱讀 8948

主鍵除了自己設定,還有很多種方法可以讓資料庫自動生成。將註解寫在實體類屬性上就可以獲得相應功能

註解@generatorvalue註解----jpa通用策略生成器

引數generationtype

public enum generationtype{

table, //特定表生成 見3

sequence, //資料庫底層 見4

identity, //自增序列生成

auto //預設,自動選擇

引數generator:其它生成器的名字,配合@genericgenerator使用

@generatedvalue(generator="system-uuid")//關聯system-uuid

@genericgenerator(name="system-uuid", strategy = "uuid")

//system-uuid策略是uuid 還可以是uuid.hex(16進製制)共12種策略

table生成策略使用

@id@column(name="id")

@generatedvalue(strategy=generationtype.table,generator="table_gen")

@tablegenerator(

name = "table_gen",

table="fendo_generator",

pkcolumnname="seq_name", //指定主鍵的名字

pkcolumnvalue="fendos", //指定下次插入主鍵時使用預設的值

valuecolumnname="seq_id", //該主鍵當前所生成的值,它的值將會隨著每次建立累加

initialvalue = 1, //初始化值

allocationsize=1 //累加值

sequence使用

部分資料庫(oracle,postgresql,db2)支援序列物件,因為其不支援主鍵自增,所以這是自增的補充方法

@id@generatedvalue(strategy = generationtype.sequence,generator="fendo_seq")

@sequencegenerator(name="fendo_seq", sequencename="seq_name")

@genericgenerator註解----自定義主鍵生成策略

可選部分

generators.put("uuid", uuidhexgenerator.class);

generators.put("hilo", tablehilogenerator.class);

generators.put("assigned", assigned.class);

generators.put("identity", identitygenerator.class);

generators.put("select", selectgenerator.class);

generators.put("sequence", sequencegenerator.class);

generators.put("seqhilo", sequencehilogenerator.class);

generators.put("increment", incrementgenerator.class);

generators.put("foreign", foreigngenerator.class);

generators.put("guid", guidgenerator.class);

generators.put("uuid.hex", uuidhexgenerator.class); is deprecated

generators.put("sequence-identity", sequenceidentitygenerator.class);

jpa設定自增主鍵 jpa如何設定主鍵自動增長

這個策略我已經試過了,auto和identity了,還是出錯。我想問hibernate對映檔案設定主鍵的generation native到了jpa在 設定呢?generatedvalue strategy generationtype.auto idpublic integer getid ret...

JPA主鍵自增設置

id generatedvalue strategy generationtype.identity private integer id auto 主鍵由程式控制,是預設選項,不設定即此項。identity 主鍵由資料庫自動生成,即採用資料庫id自增長的方式,oracle不支援這種方式。seque...

JPA 聯合主鍵

聯合主鍵 1 必須實現serializable序列化 2 必須提示無參的構造方法 3 必須重寫hashcode和equals方法 embeddable 表示該類中所有屬性在應用該聯合主鍵的類中作為它的屬性 字段 author 張明學 embeddable public class airlinepk...