アノテーションインターフェース AssociationOverride
マップされたスーパークラスを継承するエンティティに適用して、マップされたスーパークラスによって定義された関連マッピングをオーバーライドできます。指定しない場合、関連付けは元のマッピングと同じようにマッピングされます。マップされたスーパークラスによって定義されたマッピングをオーバーライドするために使用される場合、AssociationOverride はエンティティクラスに適用されます。
埋め込み可能オブジェクトがリレーションシップの所有側にある場合に、エンティティ内の埋め込み可能オブジェクトから別のエンティティへのリレーションシップマッピングをオーバーライドするために使用できます。埋め込み可能クラス(別の埋め込み可能クラス内に埋め込まれた埋め込み可能クラスを含む)によって定義された関連マッピングをオーバーライドするために使用される場合、AssociationOverride は埋め込み可能を含むフィールドまたはプロパティに適用されます。
AssociationOverride を使用して埋め込み可能クラスからの関連マッピングをオーバーライドする場合、name() 要素は、埋め込み可能クラス内の参照関連フィールドまたはプロパティを指定します。複数の埋め込みレベルでマッピングをオーバーライドするには、name 要素でドット (.) 表記構文を使用して、埋め込み属性内の属性を示す必要があります。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。
AssociationOverride を適用して、マップ値として使用される埋め込み可能クラスのマッピングをオーバーライドする場合、マップ値の一部として指定するには、オーバーライドされる埋め込み可能クラス内の属性の名前の前に "value." を使用する必要があります。
リレーションシップマッピングが外部キーマッピングの場合、joinColumns() 要素が使用されます。リレーションシップマッピングで結合テーブルを使用する場合、joinTable() 要素を指定して、結合テーブルおよび / またはその結合列のマッピングをオーバーライドする必要があります。
例 1: マップされたスーパークラスによって定義された関連のマッピングをオーバーライドする
例 2: ContactInfo クラスで定義された phoneNumbers のマッピングをオーバーライドする
必須定数のサマリー
必須要素オプション要素の概要
オプション要素修飾子と型オプションの要素説明(オプション)テーブル生成が有効な場合に、joinColumns要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。永続属性にマップされている結合列。関連をマップする結合テーブル。
要素の詳細
name
StringSE name(必須)プロパティベースのアクセスが使用されている場合はマッピングが上書きされるリレーションシッププロパティの名前、またはフィールドベースのアクセスが使用されている場合はリレーションシップフィールドの名前。
joinColumns
JoinColumn[] joinColumns永続属性にマップされている結合列。関連のマッピングのオーバーライドで外部キーマッピングを使用する場合は、joinColumns要素を指定する必要があります。関連のマッピングのオーバーライドで結合テーブルを使用する場合は、joinColumnsエレメントを指定しないでください。- デフォルト:
- {}
foreignKey
ForeignKey foreignKey(オプション)テーブル生成が有効な場合に、joinColumns要素に対応する列の外部キー制約の生成を指定または制御するために使用されます。この要素といずれかのjoinColumns要素のforeignKey要素の両方が指定されている場合、動作は未定義です。どちらの場所でも外部キーアノテーション要素が指定されていない場合は、永続性プロバイダーのデフォルトの外部キー戦略が適用されます。- 導入:
- 2.1
- デフォルト:
- @jakarta.persistence.ForeignKey(PROVIDER_DEFAULT)
joinTable
JoinTable joinTable関連をマップする結合テーブル。関連のマッピングのオーバーライドで結合テーブルを使用する場合は、joinTableエレメントを指定する必要があります。関連のオーバーライドで外部キーマッピングが使用されている場合は、joinTable要素を指定しないでください。- 導入:
- 2.0
- デフォルト:
- @jakarta.persistence.JoinTable