パッケージ jakarta.persistence

アノテーションインターフェース ManyToOne


@TargetSE({METHODSE,FIELDSE}) @RetentionSE(RUNTIMESE) public @interface ManyToOne
多対 1 の多重度を持つ別のエンティティクラスへの単一値の関連付けを指定します。ターゲットエンティティは通常、参照されるオブジェクトの型から推測できるため、通常は明示的に指定する必要はありません。

関連が双方向の場合、非所有 OneToMany エンティティ側は mappedBy 要素を使用して、関連の所有者であるエンティティの関連フィールドまたはプロパティを指定する必要があります。

ManyToOne 関連付けは通常、外部キー列をマップします。このマッピングは、JoinColumn アノテーションを使用して指定できます。あるいは、オプションの OneToOne 関連付けが、JoinTable アノテーションを使用して結合テーブルにマップされる場合もあります。

ManyToOne アノテーションは、埋め込み可能クラス内で、埋め込み可能クラスからエンティティクラスへの関連を指定するために使用できます。関連が双方向の場合、非所有 OneToMany エンティティ側は、OneToMany アノテーションの mappedBy 要素を使用して、関連の所有者側の埋め込み可能フィールドまたはプロパティの関連フィールドまたはプロパティを指定する必要があります。埋め込み属性内の関連属性を示すには、mappedBy 要素でドット (.) 表記構文を使用する必要があります。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。

例 1:

例 2:

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

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション)関連付けのターゲットにカスケードする必要がある操作。
    (オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。
    boolean
    (オプション)関連付けがオプションかどうか。
    (オプション)関連付けのターゲットであるエンティティクラス。
  • 要素の詳細

    • targetEntity

      ClassSE<?> targetEntity
      (オプション)関連付けのターゲットであるエンティティクラス。

      デフォルトでは、関連付けを保存するフィールドまたはプロパティの型になります。

      デフォルト:
      void.class
    • cascade

      CascadeType[] cascade
      (オプション)関連付けのターゲットにカスケードする必要がある操作。

      デフォルトでは、操作はカスケードされません。

      デフォルト:
      {}
    • fetch

      FetchType fetch
      (オプション)関連付けを遅延ロードするか、積極的にフェッチする必要があるか。
      • EAGER 戦略は、関連付けられたエンティティを積極的にフェッチする必要がある永続プロバイダーランタイムの要件です。
      • LAZY 戦略は、永続化プロバイダーランタイムへのヒントです。

      指定しない場合、デフォルトは EAGER になります。

      デフォルト:
      EAGER
    • optional

      boolean optional
      (オプション)関連付けがオプションかどうか。false に設定した場合、null 以外の関連が常に存在する必要があります。

      マップされた外部キー列が not null であると推論するためにスキーマ生成で使用される場合があります。

      デフォルト:
      true