8.22.46 @PrimaryKeyJoinColumn
(1) 説明
ほかのテーブルと結合する場合に外部キーとして使われるカラムを指定するアノテーションです。次の場合に使用します。
-
継承マッピング戦略のJOINED戦略で,エンティティのスーパークラスのプライマリキーとサブクラスのプライマリキーが異なる名前の場合
-
@SecondaryTableで,プライマリテーブルとセカンダリテーブルを結合する場合※
-
OneToOneリレーションシップで,被所有者側のエンティティクラスのプライマリキーが外部キーとして使用されている場合
- 注※
-
この場合は,@SecondaryTable内で使用します。
適用可能要素は,クラス,メソッド,およびフィールドです。
(2) 属性
@PrimaryKeyJoinColumnの属性の一覧を次の表に示します。
属性名 |
任意/必須 |
属性の説明 |
---|---|---|
任意 |
対象テーブルを結合するためのカラム名を指定する属性です。 |
|
任意 |
name属性で指定したカラムによって参照される結合先テーブルのプライマリキーのカラム名を指定する属性です。 |
|
columnDefinition |
任意 |
CREATE文を出力するときにカラムに付加する制約をDDLで記載する属性です。 なお,この属性は,CJPAプロバイダには対応していません。 |
CJPAプロバイダで対応する属性の詳細を次に示します。
(a) name属性
- 型
-
String
- 説明
-
対象テーブルを結合するためのカラム名を指定する属性です。
指定できるカラム名は,データベースの仕様に依存します。
- デフォルト値
-
-
JOINED戦略を使用した場合
スーパークラスのプライマリテーブルのプライマリキーのカラム名
-
@SecondaryTableを使用した場合
プライマリテーブルのプライマリキーのカラム名
-
OneToOneリレーションシップを使用した場合
対象となるエンティティのテーブルのプライマリキーのカラム名
-
(b) referencedColumnName属性
- 型
-
String
- 説明
-
name属性で指定したカラムによって参照される結合先テーブルのプライマリキーのカラム名を指定する属性です。@Columnのname属性の文字列と同じ値を指定してください。なお,指定する文字列は大文字,小文字もそろえてください。
指定できるカラム名は,データベースの仕様に依存します。
OneToOneリレーションシップでカラムの指定をプライマリキーにしなくてもユニークキー制約があれば動作してしまいますが,動作の保証はしません。
- デフォルト値
-
-
JOINED戦略を使用した場合
スーパークラスのプライマリテーブルのプライマリキーのカラム名
-
@SecondaryTableを使用した場合
プライマリテーブルのプライマリキーのカラム名
-
OneToOneリレーションシップを使用した場合
対象となるエンティティのテーブルのプライマリキーのカラム名
-