パッケージ jakarta.persistence
アノテーションインターフェース PrimaryKeyJoinColumn
@RepeatableSE(PrimaryKeyJoinColumns.class)
@TargetSE({TYPESE,METHODSE,FIELDSE})
@RetentionSE(RUNTIMESE)
public @interface PrimaryKeyJoinColumn
別のテーブルに結合するための外部キーとして使用される主キー列を指定します。
これは、JOINED
マッピング戦略のエンティティサブクラスのプライマリテーブルをそのスーパークラスのプライマリテーブルに結合するために使用されます。SecondaryTable
アノテーション内で、2 次表を 1 次表に結合するために使用されます。また、参照エンティティの主キーが参照エンティティへの外部キーとして使用される OneToOne
マッピングで使用できます。
JOINED
マッピング戦略のサブクラスに PrimaryKeyJoinColumn
アノテーションが指定されていない場合、外部キー列は、スーパークラスの主テーブルの主キー列と同じ名前であると見なされます。
サンプル: Customer
および ValuedCustomer
サブクラス
- 導入:
- 1.0
- 関連事項:
オプション要素の概要
オプション要素修飾子と型オプションの要素説明(オプション)列の DDL を生成するときに使用される SQL フラグメント。(オプション)テーブル生成が有効な場合に、主キー結合列の外部キー制約の生成を指定または制御するために使用されます。(オプション)現在のテーブルの主キー列の名前。(オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。(オプション)結合先のテーブルの主キー列の名前。
要素の詳細
name
StringSE name(オプション)現在のテーブルの主キー列の名前。デフォルトは、スーパークラスの主テーブルの主キー列と同じ名前になります (
JOINED
マッピング戦略)。主テーブルの主キー列と同じ名前 (SecondaryTable
マッピング)。または、参照エンティティのテーブルの主キー列と同じ名前 (OneToOne
マッピング)。- デフォルト:
- ""
referencedColumnName
StringSE referencedColumnName(オプション)結合先のテーブルの主キー列の名前。デフォルトは、スーパークラスの主テーブルの主キー列と同じ名前になります (
JOINED
マッピング戦略)。主テーブルの主キー列と同じ名前 (SecondaryTable
マッピング)。または、参照エンティティのテーブルの主キー列と同じ名前 (OneToOne
マッピング)。- デフォルト:
- ""
columnDefinition
StringSE columnDefinition(オプション) 列の DDL を生成するときに使用される SQL フラグメント。これは、OneToOne
主キー関連付けには指定しないでください。推測された型の列を作成するために、デフォルトで生成された SQL になります。
- デフォルト:
- ""
options
StringSE options(オプション) この列を宣言する、生成された DDL に追加される SQL フラグメント。columnDefinition()
と組み合わせて使用することはできません。- 導入:
- 3.2
- デフォルト:
- ""
foreignKey
ForeignKey foreignKey(オプション)テーブル生成が有効な場合に、主キー結合列の外部キー制約の生成を指定または制御するために使用されます。この要素が指定されていない場合、永続性プロバイダーのデフォルトの外部キー戦略が適用されます。- 導入:
- 2.1
- デフォルト:
- @jakarta.persistence.ForeignKey(PROVIDER_DEFAULT)