パッケージ jakarta.persistence
アノテーションインターフェース MapKeyJoinColumn
@RepeatableSE(MapKeyJoinColumns.class)
@TargetSE({METHODSE,FIELDSE})
@RetentionSE(RUNTIMESE)
public @interface MapKeyJoinColumn
マップキーであるエンティティへのマッピングを指定します。マップキーの結合列は、マップを表すために使用されるターゲットエンティティのコレクションテーブル、結合テーブル、テーブルにあります。
MapKeyJoinColumn
アノテーションが指定されていない場合、単一の結合列が想定され、デフォルト値が適用されます。例 1:
例 2:
例 3:
- 導入:
- 2.0
- 関連事項:
オプション要素の概要
オプション要素修飾子と型オプションの要素説明(オプション)列の DDL を生成するときに使用される SQL フラグメント。(オプション)テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。boolean
(オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。(オプション)マップキーの外部キー列の名前。boolean
(オプション)外部キー列が NULL 可能かどうか。(オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。(オプション)この外部キー列によって参照される列の名前。(オプション)外部キー列を含むテーブルの名前。boolean
(オプション)プロパティが一意のキーであるかどうか。boolean
(オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
要素の詳細
name
StringSE name(オプション)マップキーの外部キー列の名前。それが見つかるテーブルは、コンテキストによって異なります。- 結合が要素コレクションのマップキーに対するものである場合、外部キー列はマップ値のコレクションテーブルにあります。
- 結合が、結合テーブルを使用した
ManyToMany
エンティティ関連のマップキーまたはOneToMany
エンティティ関連の場合、外部キー列は結合テーブル内にあります。 - 外部キーマッピング戦略を使用した
OneToMany
エンティティ関連に対する結合の場合、マップキーの外部キー列は、マップの値であるエンティティのテーブル内にあります。
デフォルト (単一の結合列が使用される場合にのみ適用されます) 次のものの連結: 参照関連プロパティの名前、または参照エンティティまたは埋め込み可能クラスのフィールド。"
_
"; "KEY
"。- デフォルト:
- ""
referencedColumnName
StringSE referencedColumnName(オプション)この外部キー列によって参照される列の名前。参照される列は、ターゲットエンティティのテーブルにあります。デフォルト (単一の結合列が使用されている場合にのみ適用されます) 参照されるテーブルの主キー列と同じ名前。
- デフォルト:
- ""
unique
boolean unique(オプション) プロパティが一意のキーであるかどうか。これはテーブルレベルでのUniqueConstraint
アノテーションのショートカットであり、一意キー制約が 1 つのフィールドのみである場合に便利です。- デフォルト:
- false
nullable
boolean nullable(オプション)外部キー列が NULL 可能かどうか。- デフォルト:
- false
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(オプション)外部キー列を含むテーブルの名前。- 結合が要素コレクションのマップキーに対するものである場合、外部キー列はマップ値のコレクションテーブルにあります。
- 結合が、結合テーブルを使用した
ManyToMany
エンティティ関連のマップキーまたはOneToMany
エンティティ関連の場合、外部キー列は結合テーブル内にあります。 - 外部キーマッピング戦略を使用した
OneToMany
エンティティ関連に対する結合の場合、マップキーの外部キー列は、マップの値であるエンティティのテーブル内にあります。
デフォルト:
- マップが要素コレクション用である場合、マップ値のコレクションテーブルの名前。
- マップが結合テーブルを使用する
OneToMany
またはManyToMany
エンティティ関連用の場合、マップの結合テーブルの名前。 - マップが外部キーマッピング戦略を使用した
OneToMany
エンティティ関連用の場合、マップの値であるエンティティのプライマリテーブルの名前。
- デフォルト:
- ""
foreignKey
ForeignKey foreignKey(オプション) テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。この要素が指定されていない場合、デフォルトの外部キー戦略が永続化プロバイダーによって選択されます。- 導入:
- 2.1
- デフォルト:
- @jakarta.persistence.ForeignKey(PROVIDER_DEFAULT)