パッケージ jakarta.persistence

アノテーション型 JoinColumn


  • @RepeatableSE(JoinColumns.class)
    @TargetSE({METHODSE,FIELDSE})
    @RetentionSE(RUNTIMESE)
    public @interface JoinColumn
    エンティティの関連付けまたは要素コレクションを結合するための列を指定します。JoinColumn アノテーション自体がデフォルト設定されている場合、単一の結合列が想定され、デフォルト値が適用されます。
       Example:
    
       @ManyToOne
       @JoinColumn(name="ADDR_ID")
       public Address getAddress() { return address; }
    
    
       Example: unidirectional one-to-many association using a foreign key mapping
     
       // In Customer class
       @OneToMany
       @JoinColumn(name="CUST_ID") // join column is in table for Order
       public Set<Order> getOrders() {return orders;}
     
    導入:
    1.0
    関連事項:
    ManyToOne, OneToMany, OneToOne, JoinTable, CollectionTable, ForeignKey
    • オプション要素のサマリー

      オプション要素  
      修飾子と型 オプションの要素 説明
      StringSEcolumnDefinition
      (オプション)列の DDL を生成するときに使用される SQL フラグメント。
      ForeignKeyforeignKey
      (オプション)テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。
      booleaninsertable
      (オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。
      StringSEname
      (オプション)外部キー列の名前。
      booleannullable
      (オプション)外部キー列が NULL 可能かどうか。
      StringSEreferencedColumnName
      (オプション)この外部キー列によって参照される列の名前。
      StringSEtable
      (オプション)列を含むテーブルの名前。
      booleanunique
      (オプション)プロパティが一意のキーであるかどうか。
      booleanupdatable
      (オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
    • 要素の詳細

      • name

        StringSE name
        (オプション)外部キー列の名前。それが見つかるテーブルは、コンテキストによって異なります。
        • 結合が外部キーマッピング戦略を使用した OneToOne または ManyToOne マッピング用である場合、外部キー列はソースエンティティのテーブルにあるか、埋め込み可能です。
        • 結合が外部キーマッピング戦略を使用した単方向 OneToMany マッピング用である場合、外部キーはターゲットエンティティのテーブルにあります。
        • 結合が ManyToMany マッピング用であるか、結合テーブルを使用した OneToOne または双方向 ManyToOne/OneToMany マッピング用である場合、外部キーは結合テーブルにあります。
        • 結合が要素コレクションに対するものである場合、外部キーはコレクションテーブルにあります。

        デフォルト(単一の結合列が使用されている場合にのみ適用されます): 以下の連結: 参照エンティティまたは埋め込み可能クラスの参照関連プロパティまたはフィールドの名前。"_" ; 参照される主キー列の名前。エンティティにそのような参照関連のプロパティまたはフィールドがない場合、または結合が要素コレクションに対するものである場合、結合列名は次の連結として形成されます。エンティティの名前。"_" ; 参照される主キー列の名前。

        デフォルト:
        ""
      • referencedColumnName

        StringSE referencedColumnName
        (オプション)この外部キー列によって参照される列の名前。
        • ここで説明する場合以外のエンティティ関連マッピングで使用する場合、参照される列はターゲットエンティティのテーブルにあります。
        • 単方向 OneToMany 外部キーマッピングとともに使用する場合、参照される列はソースエンティティのテーブルにあります。
        • JoinTable アノテーション内で使用される場合、参照されるキー列は、所有エンティティのエンティティテーブルにあります。結合が逆結合定義の一部である場合は、逆エンティティになります。
        • CollectionTable マッピングで使用される場合、参照される列は、コレクションを含むエンティティのテーブルにあります。

        デフォルト(単一の結合列が使用されている場合にのみ適用されます): 参照されるテーブルの主キー列と同じ名前。

        デフォルト:
        ""
      • unique

        boolean unique
        (オプション)プロパティが一意のキーであるかどうか。これは、テーブルレベルでの UniqueConstraint アノテーションのショートカットであり、一意キー制約が単一のフィールドのみである場合に役立ちます。外部キーの一部である主キーに対応する結合列に対して、これを明示的に指定する必要はありません。
        デフォルト:
        false
      • nullable

        boolean nullable
        (オプション)外部キー列が NULL 可能かどうか。
        デフォルト:
        true
      • insertable

        boolean insertable
        (オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。
        デフォルト:
        true
      • updatable

        boolean updatable
        (オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
        デフォルト:
        true
      • columnDefinition

        StringSE columnDefinition
        (オプション)列の DDL を生成するときに使用される SQL フラグメント。

        デフォルトでは、列に対して生成された SQL になります。

        デフォルト:
        ""
      • table

        StringSE table
        (オプション)列を含むテーブルの名前。テーブルが指定されていない場合、その列は該当するエンティティのプライマリテーブルにあると見なされます。

        デフォルト:

        • 結合が外部キーマッピング戦略を使用した OneToOne または ManyToOne マッピング用である場合、ソースエンティティまたは埋め込み可能のテーブルの名前。
        • 結合が外部キーマッピング戦略を使用した単方向 OneToMany マッピング用である場合、ターゲットエンティティのテーブルの名前。
        • 結合が ManyToMany マッピング用であるか、結合テーブルを使用した OneToOne または双方向 ManyToOne/OneToMany マッピング用である場合、結合テーブルの名前。
        • 結合が要素コレクションに対するものである場合、コレクションテーブルの名前。
        デフォルト:
        ""
      • foreignKey

        ForeignKey foreignKey
        (オプション)テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。この要素が指定されていない場合、永続性プロバイダーのデフォルトの外部キー戦略が適用されます。
        導入:
        2.1
        デフォルト:
        @jakarta.persistence.ForeignKey(jakarta.persistence.ConstraintMode.PROVIDER_DEFAULT)