🥰
JPAのオブジェクトとテーブルマッピング
オブジェクトとテーブルマッピング(Object - Table)
@Entity
-
@Entity
が付いたクラスはJPAが管理、エンティティと呼ぶ。 - JPAを用いてテーブルとマッピングするクラスは
@Entity
が必須である -
ディフォルトコンストラクタ必須
- JPAの規則, パラメターのない
public
又はprotected
コンストラクタである必要がある。
- JPAの規則, パラメターのない
-
final
クラス,enum
,interface
, innerクラスにては使用不可 。 - 保存するフィルドに
final
使用不可。
属性
@Entity(name = "ITEM")
public class Item {
}
-
name
: JPA側で使用するEntity名前を別途指定する- ディフォルト値 : クラスの名前
- なるべくディフォルト値を使用する事をお勧めする。
@Table
-
@Table
はエンティティとマッピングするテーブルを指定 - クラス名はUserだがテーブル名はMEMBERの場合
@Entity
@Table(name = "MEMBER")
public class User {
...
}
属性
属性 | 機能 | デフォルト値 |
---|---|---|
name | マッピングするテーブル名 | エンティティ名を使用 |
catalog | DB catalogマッピング | ---- |
schema | DB schemaマッピング | ---- |
uniqueConstraints(DDL) | DDL生成時Unique制約を追加 | ---- |
- Unique制約追加
@Entity
@Table(uniqueConstraints =
{@UniqueConstraint( name = “NAME_AGE_UNIQUE”, columnNames = {“NAME”, “AGE”} )})
public class Member {
...
}
-
name
はDDL自動生成を使う場合nameに指定した名でテーブル名を作ってくれる。@Table(name = "USER")
(次)JavaフィールドとDBカラムのマッピング
Discussion