パッケージ jakarta.persistence

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


エンティティの関連付けまたは要素コレクションを結合するための列を指定します。JoinColumn アノテーション自体がデフォルト設定されている場合、単一の結合列が想定され、デフォルト値が適用されます。

例:

サンプル: 外部キーマッピングを使用した一方向の 1 対多の関連付け

導入:
1.0
関連事項:
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション) 列に適用される制約を確認します。
    (オプション)列の DDL を生成するときに使用される SQL フラグメント。
    (オプション) 列に適用されるコメント。
    (オプション)テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。
    boolean
    (オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。
    (オプション)外部キー列の名前。
    boolean
    (オプション)外部キー列が NULL 可能かどうか。
    (オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。
    (オプション)この外部キー列によって参照される列の名前。
    (オプション)列を含むテーブルの名前。
    boolean
    (オプション)プロパティが一意のキーであるかどうか。
    boolean
    (オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
  • 要素の詳細

    • name

      StringSE name
      (オプション)外部キー列の名前。

      この列が存在するテーブルはコンテキストによって異なります。

      • 結合が外部キーマッピング戦略を使用した OneToOne または ManyToOne マッピングの場合、外部キー列はソースエンティティまたは埋め込み可能テーブルのテーブル内にあります。
      • 結合が外部キーマッピング戦略を使用した一方向 OneToMany マッピングに対するものである場合、外部キーはターゲットエンティティのテーブル内にあります。
      • 結合が、結合テーブルを使用した ManyToMany マッピング、または OneToOne または双方向 ManyToOne/OneToMany マッピングに対するものである場合、外部キーは結合テーブル内にあります。
      • 結合が ElementCollection に対するものである場合、外部キーはコレクションテーブル内にあります。

      デフォルト (単一の結合列が使用される場合にのみ適用されます): 次の連結: 参照関連プロパティの名前、または参照エンティティまたは埋め込み可能クラスのフィールド。"_"; 参照される主キー列の名前。エンティティ内にそのような参照関連プロパティまたはフィールドが存在しない場合、または結合が要素コレクションに対するものである場合、結合列名は次のものを連結したものとして形成されます。エンティティの名前。"_"; 参照される主キー列の名前。

      デフォルト:
      ""
    • referencedColumnName

      StringSE referencedColumnName
      (オプション)この外部キー列によって参照される列の名前。
      • ここで説明する場合以外のエンティティ関連マッピングで使用する場合、参照される列はターゲットエンティティのテーブルにあります。
      • 一方向 OneToMany 外部キーマッピングで使用すると、参照される列はソースエンティティのテーブル内にあります。
      • JoinTable アノテーション内で使用される場合、参照されるキー列は、所有エンティティのエンティティテーブル内にあり、結合が逆結合定義の一部である場合は逆エンティティ内にあります。
      • CollectionTable マッピングで使用される場合、参照される列は、コレクションを含むエンティティのテーブル内にあります。

      デフォルト(単一の結合列が使用されている場合にのみ適用されます): 参照されるテーブルの主キー列と同じ名前。

      デフォルト:
      ""
    • unique

      boolean unique
      (オプション) プロパティが一意のキーであるかどうか。これはテーブルレベルでの UniqueConstraint アノテーションのショートカットであり、一意キー制約が 1 つのフィールドのみである場合に便利です。外部キーの一部である主キーに対応する結合列に対してこれを明示的に指定する必要はありません。
      デフォルト:
      false
    • nullable

      boolean nullable
      (オプション)外部キー列が NULL 可能かどうか。
      デフォルト:
      true
    • insertable

      boolean insertable
      (オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。
      デフォルト:
      true
    • updatable

      boolean updatable
      (オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
      デフォルト:
      true
    • columnDefinition

      StringSE columnDefinition
      (オプション)列の DDL を生成するときに使用される SQL フラグメント。

      デフォルトでは、列に対して生成された SQL になります。

      デフォルト:
      ""
    • options

      StringSE options
      (オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。columnDefinition() と組み合わせて使用することはできません。
      導入:
      3.2
      デフォルト:
      ""
    • table

      StringSE table
      (オプション)列を含むテーブルの名前。テーブルが指定されていない場合、その列は該当するエンティティのプライマリテーブルにあると見なされます。

      デフォルト:

      • 結合が外部キーマッピング戦略を使用した OneToOne または ManyToOne マッピングの場合、ソースエンティティまたは埋め込み可能テーブルのテーブルの名前。
      • 結合が外部キーマッピング戦略を使用した単方向 OneToMany マッピング用である場合、ターゲットエンティティのテーブルの名前。
      • 結合が、結合テーブルを使用した ManyToMany マッピング、または OneToOne または双方向 ManyToOne/OneToMany マッピングの場合、結合テーブルの名前。
      • 結合が要素コレクションに対するものである場合、コレクションテーブルの名前。
      デフォルト:
      ""
    • foreignKey

      ForeignKey foreignKey
      (オプション) テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。この要素が指定されていない場合、デフォルトの外部キー戦略が永続化プロバイダーによって選択されます。
      導入:
      2.1
      デフォルト:
      @jakarta.persistence.ForeignKey(PROVIDER_DEFAULT)
    • check

      (オプション) 列に適用される制約を確認します。これらは、テーブル生成が有効な場合にのみ使用されます。
      導入:
      3.2
      デフォルト:
      {}
    • comment

      StringSE comment
      (オプション) 列に適用されるコメント。これは、テーブル生成が有効な場合にのみ使用されます。
      導入:
      3.2
      デフォルト:
      ""