パッケージ jakarta.persistence

アノテーションインターフェース 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 を明示的に指定する必要はほとんどありません。

永続フィールドとプロパティとは別に、エンティティクラスは PrePersistPreUpdatePreRemovePostPersistPostUpdate、/ または PostRemove を使用してコールバックメソッドを宣言できます。

導入:
1.0
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション)エンティティ名。
  • 要素の詳細

    • name

      StringSE name
      (オプション)エンティティ名。デフォルトは、エンティティクラスの非修飾名です。この名前は、クエリでエンティティを参照するために使用されます。名前は、Jakarta Persistence クエリ言語で予約されたリテラルであってはなりません。
      デフォルト:
      ""