Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(コンテナ共通機能)
次に示す条件の場合に適用される双方向のOneToOneリレーションシップのデフォルトマッピングについて説明します。
- 条件
- エンティティAはエンティティBの単体のインスタンスを参照して,@OneToOneを設定します。
- エンティティBはエンティティAの単体のインスタンスを参照して,@OneToOneを設定します。@OneToOneのmappedBy属性にエンティティAでエンティティBを参照する永続化プロパティ(またはフィールド)名を指定します。
- エンティティAは,リレーションシップの所有者です。
- 適用されるデフォルトマッピング
- エンティティAは,テーブルAにマップされます。
- エンティティBは,テーブルBにマップされます。
- テーブルAは,テーブルBの外部キーを持つ必要があります。なお,外部キー列の名前は,次のようになります。
外部キー列の名前
エンティティAのリレーションシッププロパティ(またはフィールド)の名前_テーブルBのプライマリキー列の名前
注 斜体は可変値を表します。
- また,外部キー列は,テーブルBのプライマリキーと同じ型を持ち,ユニークキー制約があります。
図6-6 双方向のOneToOneでのデフォルトマッピング
次に示す条件の場合に適用される双方向のManyToOne/OneToManyリレーションシップのデフォルトマッピングについて説明します。
- 条件
- エンティティAはエンティティBの単体のインスタンスを参照して,@ManyToOne(または,O/Rマッピングファイルの該当するXMLタグ)を設定します。
- エンティティBは,エンティティAのコレクションを参照して,@OneToMany(または,O/Rマッピングファイルの該当するXMLタグ)を設定します。@OneToManyにはmappedBy属性を指定します。mappedBy属性は,エンティティAで,エンティティBを参照するために設定した永続プロパティ(またはフィールド)名を指定します。
- エンティティAは,リレーションシップの所有者です。
- 適用されるデフォルトマッピング
- エンティティAはテーブルAにマップされます。
- エンティティBはテーブルBにマップされます。
- テーブルAは,テーブルBに対する外部キーを持つ必要があります。外部キー列の名前は,次のようになります。
外部キー列の名前
エンティティAのリレーションシッププロパティ(またはフィールド)の名前_テーブルBのプライマリキー列の名前
注 斜体は可変値を表します。
- 外部キー列はテーブルBのプライマリキーと同じ型を持ちます。
図6-7 双方向のManyToOne/OneToManyでのデフォルトマッピング
次に示す条件の場合に適用される双方向のManyToManyリレーションシップのデフォルトマッピングについて説明します。
- 条件
- エンティティAは,エンティティBのコレクションを参照します。コレクションには,@ManyToMany(または,O/Rマッピングファイルで該当するXML要素)を設定します。
- エンティティBは,エンティティAのコレクションを参照します。コレクションには,@ManyToMany(または,O/Rマッピングファイルで該当するXMLタグ)を設定して,mappedBy属性を指定します。mappedBy属性には,エンティティAで,エンティティBを参照するために設定した永続化プロパティ(またはフィールド)名を指定します。
- エンティティAは,リレーションシップの所有者側です。
- 適用されるデフォルトマッピング
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.