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