アノテーションインターフェース Entity
非 final
最上位クラスまたは静的内部クラスであること。- パラメーターのない
public
またはprotected
コンストラクターがあり、かつ final
メソッドや永続インスタンス変数はありません。
enum、レコード、インターフェースをエンティティとして指定することはできません。
エンティティには、Table
アノテーションを使用してマップされたプライマリテーブルがあり、SecondaryTable
アノテーションを使用してマップされた 1 つ以上のセカンダリテーブルがある場合があります。
エンティティクラスは、永続的なフィールドとプロパティとして表される状態を保持します。
- 基本型のフィールドまたはプロパティは、エンティティによってマップされたテーブルの 1 つの単一の列にマップされます。
- 埋め込み可能な型のプロパティのフィールドには、エンティティによってマップされたテーブルの 1 つの内の複数の列へのネストされたマッピングがあります。
- 要素コレクションは通常、別のコレクションテーブルにマップされます。
- 多対 1 の関連付けは通常、エンティティによってマップされたテーブルの 1 つの外部キー列にマップされます。
- 1 対 1 の関連付けは通常、一意の外部キー関連にマップされます (共有主キーを使用する場合もあります)。
- 1 対多の関連付けは通常、関連付けられたエンティティによってマップされたテーブルの 1 つの外部キー列にマップされます。
- 多対多の関連付けは通常、結合テーブルにマップされます。
すべてのエンティティクラスには、エンティティの主キーを保持する Id
または EmbeddedId
アノテーションが付けられたフィールドまたはプロパティが少なくとも 1 つ必要です。エンティティクラスには、オプティミスティックロックの失敗を検出するために使用される値を保持する、Version
というアノテーションが付けられたフィールドまたはプロパティをオプションで含めることができます。
エンティティクラスのフィールドまたはプロパティは、デフォルトでは永続的です。Transient
アノテーションまたは Java transient
キーワードは、永続的ではないエンティティのフィールドまたはプロパティを明示的に宣言するために使用する必要があります。
エンティティアクセス型は、永続化プロバイダがエンティティの状態に getter および setter メソッドを使用してアクセスするか、直接フィールドアクセスを介してアクセスするかを決定します。エンティティのデフォルトのアクセス型はエンティティクラス上のマッピングアノテーションの配置によって決定されるため、AccessType
を明示的に指定する必要はほとんどありません。
永続フィールドとプロパティとは別に、エンティティクラスは PrePersist
、PreUpdate
、PreRemove
、PostPersist
、PostUpdate
、/ または PostRemove
を使用してコールバックメソッドを宣言できます。
- 導入:
- 1.0
オプション要素の概要
オプション要素
要素の詳細
name
StringSE name(オプション)エンティティ名。デフォルトは、エンティティクラスの非修飾名です。この名前は、クエリでエンティティを参照するために使用されます。名前は、Jakarta Persistence クエリ言語で予約されたリテラルであってはなりません。- デフォルト:
- ""