パッケージ jakarta.persistence

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


@TargetSE({METHODSE,FIELDSE}) @RetentionSE(RUNTIMESE) public @interface JoinTable
中間結合テーブルへの関連付けのマッピングを指定します。これは、協会の所有者側に適用されます。

結合テーブルは通常、多対多のマッピングおよび一方向の 1 対多の関連付けに使用されます。また、双方向の many-to-one/one-to-many 関連付け、単方向の多対 1 関連、および 1 対 1 関連付け (双方向と単方向の両方) をマッピングするために使用することもできます。

関連の所有側にある埋め込み可能クラスとの関連のマッピングに結合テーブルが使用される場合、埋め込み可能クラスではなく包含エンティティが関連の所有者と見なされます。

JoinTable アノテーションが欠落している場合、アノテーション要素のデフォルト値が適用されます。結合テーブルの名前は、アンダースコアを使用して連結された(所有側が最初)関連するプライマリテーブルのテーブル名であると見なされます。

例:

このアノテーションは、ManyToOneOneToOneManyToMany、または OneToMany アノテーションが付けられていない永続フィールドまたはプロパティには適用できません。

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

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション)テーブルのカタログ。
    (オプション) テーブルに適用される制約を確認します。
    (オプション) テーブルに適用されるコメント。
    (オプション) テーブル生成が有効なときに、joinColumns() 要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。
    (オプション)テーブルのインデックス。
    (オプション) テーブル生成が有効なときに、inverseJoinColumns() 要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。
    (オプション)関連付けを所有していないエンティティのプライマリテーブルを参照する結合テーブルの外部キー列。
    (オプション)関連付けを所有するエンティティのプライマリテーブルを参照する結合テーブルの外部キー列。
    (オプション)結合テーブルの名前。
    (オプション) このテーブルを作成する生成された DDL ステートメントに追加される SQL フラグメント。
    (オプション)テーブルのスキーマ。
    (オプション) テーブルに設定される一意の制約。
  • 要素の詳細

    • name

      StringSE name
      (オプション)結合テーブルの名前。

      デフォルトは、アンダースコアで区切られた、関連付けられた 2 つのプライマリエンティティテーブルの連結名です。

      デフォルト:
      ""
    • catalog

      StringSE catalog
      (オプション)テーブルのカタログ。

      デフォルトはデフォルトカタログです。

      デフォルト:
      ""
    • schema

      StringSE schema
      (オプション)テーブルのスキーマ。

      デフォルトはユーザーのデフォルトスキーマです。

      デフォルト:
      ""
    • joinColumns

      JoinColumn[] joinColumns
      (オプション)関連付けを所有するエンティティのプライマリテーブルを参照する結合テーブルの外部キー列。(つまり、協会の所有側)。

      JoinColumn と同じデフォルトを使用します。

      デフォルト:
      {}
    • inverseJoinColumns

      JoinColumn[] inverseJoinColumns
      (オプション)関連付けを所有していないエンティティのプライマリテーブルを参照する結合テーブルの外部キー列。(つまり、関連付けの逆側)。

      JoinColumn と同じデフォルトを使用します。

      デフォルト:
      {}
    • foreignKey

      ForeignKey foreignKey
      (オプション) テーブル生成が有効なときに、joinColumns() 要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。この要素といずれかの joinColumns() 要素の foreignKey 要素の両方が指定された場合の動作は未定義です。どちらの場所にも外部キーアノテーション要素が指定されていない場合は、永続化プロバイダーによってデフォルトの外部キー戦略が選択されます。
      導入:
      2.1
      デフォルト:
      @jakarta.persistence.ForeignKey(PROVIDER_DEFAULT)
    • inverseForeignKey

      ForeignKey inverseForeignKey
      (オプション) テーブル生成が有効なときに、inverseJoinColumns() 要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。この要素といずれかの inverseJoinColumns() 要素の foreignKey 要素の両方が指定された場合の動作は未定義です。どちらの場所にも外部キーアノテーション要素が指定されていない場合は、永続化プロバイダーによってデフォルトの外部キー戦略が選択されます。
      導入:
      2.1
      デフォルト:
      @jakarta.persistence.ForeignKey(PROVIDER_DEFAULT)
    • uniqueConstraints

      UniqueConstraint[] uniqueConstraints
      (オプション) テーブルに設定される一意の制約。これらは、テーブル生成が有効な場合にのみ使用されます。

      デフォルトでは追加の制約はありません。

      デフォルト:
      {}
    • indexes

      Index[] indexes
      (オプション)テーブルのインデックス。これらは、テーブル生成が有効な場合にのみ使用されます。
      導入:
      2.1
      デフォルト:
      {}
    • check

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

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

      StringSE options
      (オプション) このテーブルを作成する生成された DDL ステートメントに追加される SQL フラグメント。これは、テーブル生成が有効な場合にのみ使用されます。
      導入:
      3.2
      デフォルト:
      ""