@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 © 2019 Eclipse Foundation.
Use is subject to license terms.