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