パッケージ jakarta.persistence

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


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

関連が双方向の場合、非所有側は OneToOne アノテーションの mappedBy() 要素を使用して、所有側の関連フィールドまたはプロパティを指定する必要があります。

OneToOne 関連付けは通常、一意の外部キー関連 (一意の制約を持つ外部キー列または列、または共有主キーを介した関連) をマップします。JoinColumn アノテーションは、外部キー列をマップするために使用できます。あるいは、オプションの OneToOne 関連付けが、JoinTable アノテーションを使用して結合テーブルにマップされる場合もあります。

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

例 1: 外部キー列をマップする 1 対 1 の関連付け

例 2: ソースとターゲットの両方が同じ主キー値を共有すると想定する 1 対 1 の関連付け。

例 3: 埋め込み可能なクラスから別のエンティティへの 1 対 1 の関連付け。

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

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

    • targetEntity

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

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

      デフォルト:
      void.class
    • cascade

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

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

      デフォルト:
      {}
    • fetch

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

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

      デフォルト:
      EAGER
    • optional

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

      StringSE mappedBy
      (オプション)関連を所有するフィールド。この要素は、関連付けの逆(非所有)側でのみ指定されます。
      デフォルト:
      ""
    • orphanRemoval

      boolean orphanRemoval
      (オプション)リレーションシップから削除されたエンティティに削除操作を適用し、それらのエンティティに削除操作をカスケードするかどうか。
      導入:
      2.0
      デフォルト:
      false