JPAのプライマリ・キー生成ポリシー
3798 ワード
プライマリ・キー生成ポリシー
プライマリ・キー生成ポリシーとは、プライマリ・キー列値を自動的に生成するポリシーです.
JPAは4つのプライマリ・キー生成ポリシーを提供しています IDENTITY:ID自己成長ポリシー.IDの自己成長をサポートするデータベースにのみ使用できます. SEQUENCE:シーケンス生成ポリシー.SEQUENCEポリシーの使用を指定します.HIbernateのxmlと同じです.MySQLでテーブルシミュレーションシーケンスを使用する場合、Oracleで直接シーケンスを使用する場合.Oracleなどのシーケンス・データベースで使用します. TABLEポリシーは、どのデータベースでもテーブルを使用してシーケンスをシミュレートします.(理解)1つのテーブルを作成するたびに別のシーケンステーブルを生成するのは面倒だから . AUTO(了解):フレームワークによって異なるデータベースに基づいてポリシーを指定します.結果の不定性のため.ほとんど誰も使っていません.、時々Tableポリシーが生成されますが、 はあまりにも固定されていません.
プライマリ・キー生成ポリシーとは、プライマリ・キー列値を自動的に生成するポリシーです.
JPAは4つのプライマリ・キー生成ポリシーを提供しています
@Id
//IDENTITY ID , ID
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="cust_id")
private Long custId;// ' ( )',
@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;// ' ( )',
@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;// ' ( )',
@Id
/**
* strategy:
* generator:
*/
@GeneratedValue(strategy=GenerationType.AUTO)
// , , @Column
@Column(name="cust_id")
private Long custId;// ' ( )',