「多対多マッピング」を使用して、多対多の多重度を持つ多値の関連付けを定義します。多対多マッピングには、所有側と非所有側の 2 つがあります。結合テーブルは所有側で指定する必要があります。双方向マッピングの場合、どちらかの側が所有側になります。
「JPA の構造」ビューで、マップするフィールドを選択します。
このフィールドを右クリックしてから、「次としてマップ」>「多対多」を選択します。「JPA の詳細」ビュー (属性用) に、選択されたフィールドのプロパティーが表示されます。
以下の表を使用して、「JPA の詳細」ビューの「一般情報」フィールドに入力します。
プロパティー | 説明 | デフォルト |
---|---|---|
エンティティーのハイパーリンクのマッピング | このマッピングを「多対多マッピング」として定義します。
このフィールドは |
多対多 |
ターゲット・エンティティー | この属性のマップ先となるエンティティー。 | null
ターゲット・エンティティーは参照されるオブジェクトのタイプから推論できるため、明示的に指定する必要はありません。 |
取り出し | データをデータベースからロードする方法を定義します。詳しくは、取り出しタイプを参照してください。
|
遅延 (Lazy) |
マップ元 | 関係を所有するデータベース・フィールド。 | |
配列基準 | 照会から戻されたオブジェクトのデフォルトの順序を指定します。
詳しくは、配列基準を参照してください。
|
配列なし |
以下の表を使用して、「JPA の詳細」ビューの「結合テーブル情報」の領域のフィールドに入力します。
プロパティー | 説明 | デフォルト |
---|---|---|
名前 | 外部キー列を持つ結合テーブルの名前です。 | 結合テーブルは所有側で指定する必要があります。 デフォルトでは、名前はエンティティーに関連付けられた 1 次テーブルが下線で連結されたものと想定されます。 |
結合列 | 「デフォルト値のオーバーライド」を選択して、結合列を追加、編集、または削除します。 | デフォルトでは、名前はエンティティーに関連付けられた 1 次テーブルが下線で連結されたものと想定されます。 |
逆結合列 | 「デフォルト値のオーバーライド」を選択して、結合列を追加、編集、または削除します。 | デフォルトでは、マッピングは単一結合を持つと想定されています。 |
「結合列」または「逆結合列」を新規追加するには、「追加」をクリックします。
既存の「結合列」または「逆結合列」を編集するには、フィールドを選択して「編集」をクリックします。
Eclipse は以下の注釈をフィールドに追加します。
@JoinTable(joinColumns=@JoinColumn(name="<JOIN_COLUMN>"), name = "<JOIN_TABLE_NAME>") @ManyToMany(cascade=CascadeType.<CASCADE_TYPE>, fetch=FetchType.<FETCH_TYPE>, targetEntity=<TARGET_ENTITY>, mappedBy = "<MAPPED_BY>") @OrderBy("<ORDER_BY>")