パッケージ jakarta.persistence

アノテーションインターフェース AssociationOverride


エンティティ関連のマッピングをオーバーライドするために使用されます。

マップされたスーパークラスを継承するエンティティに適用して、マップされたスーパークラスによって定義された関連マッピングをオーバーライドできます。指定しない場合、関連付けは元のマッピングと同じようにマッピングされます。マップされたスーパークラスによって定義されたマッピングをオーバーライドするために使用される場合、AssociationOverride はエンティティクラスに適用されます。

埋め込み可能オブジェクトがリレーションシップの所有側にある場合に、エンティティ内の埋め込み可能オブジェクトから別のエンティティへのリレーションシップマッピングをオーバーライドするために使用できます。埋め込み可能クラス(別の埋め込み可能クラス内に埋め込まれた埋め込み可能クラスを含む)によって定義された関連マッピングをオーバーライドするために使用される場合、AssociationOverride は埋め込み可能を含むフィールドまたはプロパティに適用されます。

AssociationOverride を使用して埋め込み可能クラスからの関連マッピングをオーバーライドする場合、name() 要素は、埋め込み可能クラス内の参照関連フィールドまたはプロパティを指定します。複数の埋め込みレベルでマッピングをオーバーライドするには、name 要素でドット (.) 表記構文を使用して、埋め込み属性内の属性を示す必要があります。ドット表記で使用される各識別子の値は、それぞれの埋め込みフィールドまたはプロパティの名前です。

AssociationOverride を適用して、マップ値として使用される埋め込み可能クラスのマッピングをオーバーライドする場合、マップ値の一部として指定するには、オーバーライドされる埋め込み可能クラス内の属性の名前の前に "value." を使用する必要があります。

リレーションシップマッピングが外部キーマッピングの場合、joinColumns() 要素が使用されます。リレーションシップマッピングで結合テーブルを使用する場合、joinTable() 要素を指定して、結合テーブルおよび / またはその結合列のマッピングをオーバーライドする必要があります。

例 1: マップされたスーパークラスによって定義された関連のマッピングをオーバーライドする

例 2: ContactInfo クラスで定義された phoneNumbers のマッピングをオーバーライドする

導入:
1.0
関連事項:
  • 必須定数のサマリー

    必須要素
    修飾子と型
    必須要素
    説明
    (必須)プロパティベースのアクセスが使用されている場合はマッピングが上書きされるリレーションシッププロパティの名前、またはフィールドベースのアクセスが使用されている場合はリレーションシップフィールドの名前。
  • オプション要素の概要

    オプション要素
    修飾子と型
    オプションの要素
    説明
    (オプション)テーブル生成が有効な場合に、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