パッケージ 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
オプション要素のサマリー
オプション要素 修飾子と型 オプションの要素 説明 StringSE
columnDefinition
(オプション)列の DDL を生成するときに使用される SQL フラグメント。ForeignKey
foreignKey
(オプション)テーブル生成が有効な場合に、外部キー制約の生成を指定または制御するために使用されます。boolean
insertable
(オプション)永続プロバイダーによって生成された SQL INSERT ステートメントに列が含まれるかどうか。StringSE
name
(オプション)外部キー列の名前。boolean
nullable
(オプション)外部キー列が NULL 可能かどうか。StringSE
referencedColumnName
(オプション)この外部キー列によって参照される列の名前。StringSE
table
(オプション)列を含むテーブルの名前。boolean
unique
(オプション)プロパティが一意のキーであるかどうか。boolean
updatable
(オプション)永続プロバイダーによって生成された SQL UPDATE ステートメントに列が含まれるかどうか。
要素の詳細
name
StringSE name
(オプション)外部キー列の名前。それが見つかるテーブルは、コンテキストによって異なります。- 結合が外部キーマッピング戦略を使用した OneToOne または ManyToOne マッピング用である場合、外部キー列はソースエンティティのテーブルにあるか、埋め込み可能です。
- 結合が外部キーマッピング戦略を使用した単方向 OneToMany マッピング用である場合、外部キーはターゲットエンティティのテーブルにあります。
- 結合が ManyToMany マッピング用であるか、結合テーブルを使用した OneToOne または双方向 ManyToOne/OneToMany マッピング用である場合、外部キーは結合テーブルにあります。
- 結合が要素コレクションに対するものである場合、外部キーはコレクションテーブルにあります。
デフォルト(単一の結合列が使用されている場合にのみ適用されます): 以下の連結: 参照エンティティまたは埋め込み可能クラスの参照関連プロパティまたはフィールドの名前。"_" ; 参照される主キー列の名前。エンティティにそのような参照関連のプロパティまたはフィールドがない場合、または結合が要素コレクションに対するものである場合、結合列名は次の連結として形成されます。エンティティの名前。"_" ; 参照される主キー列の名前。
- デフォルト:
- ""
referencedColumnName
StringSE referencedColumnName
(オプション)この外部キー列によって参照される列の名前。- ここで説明する場合以外のエンティティ関連マッピングで使用する場合、参照される列はターゲットエンティティのテーブルにあります。
- 単方向 OneToMany 外部キーマッピングとともに使用する場合、参照される列はソースエンティティのテーブルにあります。
JoinTable
アノテーション内で使用される場合、参照されるキー列は、所有エンティティのエンティティテーブルにあります。結合が逆結合定義の一部である場合は、逆エンティティになります。CollectionTable
マッピングで使用される場合、参照される列は、コレクションを含むエンティティのテーブルにあります。
デフォルト(単一の結合列が使用されている場合にのみ適用されます): 参照されるテーブルの主キー列と同じ名前。
- デフォルト:
- ""
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)