基本編(4)-マップエンティティ
4127 ワード
オブジェクトとテーブルのマッピング
@Entity
@Entityを持つクラスは、エンティティと呼ばれるJPAによって管理されます.
JPAマッピングテーブルを使用するクラスは必須です.
*注意事項*
-デフォルトの作成者が必要
-finalクラス、enum、interface、内部クラスXの使用
整理@Entityプロパティ
name
JPAで使用されるエンティティ名.デフォルトはクラス名です.デフォルト値の使用を推奨
@Table
エンティティにマッピングするテーブルの指定
- name
- catalog, schema, uniqueConstraints
データベース・モードの自動作成
データベース構造
出典:https://jwprogramming.tistory.com/47[開発者を求めるプログラマー]
これは、アプリケーションの実行時にDDLが自動的に生成され、オブジェクト中心のテーブル開発が可能になることを意味します.
しかし、開発段階でしか使用できません.
•開発初期フェーズはcreateまたはupdate
•テストサーバが更新または検証できる
•ダンプおよび本番サーバはvalidateまたはnone
DDL生成機能は、DDLの自動生成時にのみ使用され、JPAの実行ロジックには影響しません.
フィールドとカラムのマッピング
マッピング宣言のクリア
name:フィールドにマッピングするテーブルのカラム名
-default=オブジェクトのフィールド名
挿入可能、更新可能:登録が変更可能かどうか
- default = True
unique(DDL):@TableのuniqueConstraaintsと同じです.
columnDefinition(DDL):データベース列情報を直接提供できます.フィールドのjavaタイプと方言情報を使用する必要があります
ex) varchar(100) default ‘EMPTY'
length(DDL):Stringタイプにのみ使用される文字長制約.255
精度、scale(DDL):BigDecimalタイプ(BigIntegerでも使用可能).
精度は小数点を含む全桁数,scaleは小数点数である.非常に大きな数の処理に使用
precision=19,
scale=2
日付タイプマッピングの場合、最新の高バージョンは
Javaenumタイプのマッピングに使用
-> EnumType.STRING:enum名をデータベースに保存する
必ずSTRINGタイプを使います!
マッピングされたフィールドタイプが文字である場合、CLOBがマッピングされ、残りのフィールドはBLOB
データベースに格納、クエリーを行わず、主にメモリで値を処理したい場合に使用されます.
プライマリ・キーのマッピング
デフォルトのキーマッピング宣言
プライマリ・キーのマッピング方法
•IDENTITY:データベースへの委任、MYSQL
-IDENTITYポリシーは、em.persist()ポイントでINSERT SQLを実行し、DBで識別子を問合せます.•SEQUENCE:データベースでクイーンズオブジェクト(順番に割り当てられたデータベース内のオブジェクト)を使用する->@シーケンスジェネレータ
@Entity
@SequenceGenerator(
name = “MEMBER_SEQ_GENERATOR",
sequenceName = “MEMBER_SEQ", //매핑할 데이터베이스 시퀀스 이름
initialValue = 1, allocationSize = 1)
•TABLE:テーブルを使用して鍵を生成-> TableGenerator
@Entity
@TableGenerator(
name = "MEMBER_SEQ_GENERATOR",
table = "MY_SEQUENCES",
pkColumnValue = “MEMBER_SEQ", allocationSize = 1)
•AUTO:方言による自動指定、デフォルト値-AUTO INCREMENTデータベースでINSERT SQLを実行すると、ID値がわかります
推奨識別子ポリシー
デフォルト鍵制約:X、null Xの変更
提案:Long兄+代替鍵+鍵生成ポリシーを使用する
スタンバイキー<->ナチュラルキー(たとえば、ID番号)
Reference
この問題について(基本編(4)-マップエンティティ), 我々は、より多くの情報をここで見つけました https://velog.io/@bins1225/기본편4-엔티티-매핑テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol