@RepeatableSE(valueSE=PrimaryKeyJoinColumns.class) @TargetSE(valueSE={TYPESE,METHODSE,FIELDSE}) @RetentionSE(valueSE=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 { ... }
SecondaryTable
, Inheritance
, OneToOne
, ForeignKey
修飾子と型 | オプションの要素と説明 |
---|---|
StringSE | columnDefinition (オプション)列の DDL を生成するときに使用される SQL フラグメント。 |
ForeignKey | foreignKey (オプション)テーブル生成が有効な場合に、主キー結合列の外部キー制約の生成を指定または制御するために使用されます。 |
StringSE | name (オプション)現在のテーブルの主キー列の名前。 |
StringSE | referencedColumnName (オプション)結合先のテーブルの主キー列の名前。 |
public abstract StringSE name
デフォルトは、スーパークラスの主テーブルの主キー列と同じ名前です(JOINED
マッピング戦略)。主テーブルの主キー列と同じ名前(SecondaryTable
マッピング)。または、参照エンティティの表の主キー列と同じ名前(OneToOne
マッピング)。
public abstract StringSE referencedColumnName
デフォルトは、スーパークラスの主テーブルの主キー列と同じ名前です(JOINED
マッピング戦略)。主テーブルの主キー列と同じ名前(SecondaryTable
マッピング)。または、参照エンティティの表の主キー列と同じ名前(OneToOne
マッピング)。
public abstract StringSE columnDefinition
OneToOne
主キーの関連付けには指定しないでください。推測された型の列を作成するために、デフォルトで生成された SQL になります。
public abstract ForeignKey foreignKey
Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.