プライマリ・キーのマッピング
リファレンス
デフォルトのキーマッピング宣言
@Id @GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
プライマリ・キーのマッピング方法
自動作成
-必要@Sequence Generator
-必要@Table Generator
ちょくせつわりあて
IDENTITY戦略
特長
必ずあるので、JPAはキー値がメインキャッシュマッピングに入っていないので入れられません.
最終的に、JPAは、この場合のみpersist()時にINSERT Queryを発行する.
(例えば、MySQLのAUTO INCREMENT)
マッピング
@Entity
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
SEQENCEポリシー
特長
マッピング
@Entity
@SequenceGenerator(
name = "MEMBER_SEQ_GENERATOR",
sequenceName = "MEMBER_SEQ", //매핑할 데이터베이스 시퀀스 이름
initialValue = 1, allocationSize = 1)
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE,
private Long id;
}
@SequenceGenerator
そして再度呼び出す(DB SEQ=51).
TABLE戦略
ポリシー
マッピング
create table MY_SEQUENCES (
sequence_name varchar(255) not null,
next_val bigint,
primary key ( sequence_name )
)
@Entity
@TableGenerator(
name = "MEMBER_SEQ_GENERATOR",
table = "MY_SEQUENCES",
pkColumnValue = “MEMBER_SEQ", allocationSize = 1)
public class Member {
@Id
@GeneratedValue(strategy = GenerationType.TABLE,
generator = "MEMBER_SEQ_GENERATOR")
private Long id;
}
@Table Generator-プロパティ
属性機能デフォルト名識別子ジェネレータ名に必要なテーブルキー表名hibernate sequencespkColumnNameシーケンス名シーケンス名ColumnNameシーケンス値カラム名カラム名カラム名カラム名カラム名カラム名値値値値値値値値値エンティティ名の初期値として使用します.最後に生成された値は基準です.0は、パフォーマンス最適化用にSizeシーケンスの1回の呼び出しで増加した50 catalog、schemaデータベースcatalog、schema名uniqueConstraints(DDL)固有の制約を割り当てることができます.
推奨識別子ポリシー
Reference
この問題について(プライマリ・キーのマッピング), 我々は、より多くの情報をここで見つけました https://velog.io/@roberts/기본-키-매핑テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol