Hitachi

Cosminexus V11 アプリケーションサーバ 機能解説 互換編


8.6.2 リレーションシップのアノテーション

エンティティではテーブル間の関連をリレーションシップとして扱います。リレーションシップをエンティティで扱う場合,エンティティでフィールドとしてほかのエンティティへの参照を保持します。その上で,次に示すリレーションシップのアノテーションを,エンティティを参照する永続化プロパティまたはインスタンス変数に設定してください。

エンティティのリレーションシップとテーブル間の関連を次の図に示します。

図8‒5 エンティティのリレーションシップとテーブル間の関連

[図データ]

エンティティへの参照に対して,リレーションシップのアノテーションが指定されていない場合は動作を保証しません。なお,コレクションを使用した参照で,generic型を利用しない場合,リレーションシップのtargetとして,対象のエンティティを指定する必要があります。

なお,アノテーションを使用する代わりに,O/Rマッピングファイルでリレーションシップを定義することもできます。ただし,O/Rマッピングファイルで定義している場合で,同じ定義をアノテーションに指定しているときには,アノテーションの定義は上書きされるので注意してください。

リレーションシップのアノテーションでのデフォルトマッピング

OneToOne,OneToMany,ManyToOne,ManyToManyのリレーションシップのアノテーションを適用した場合,デフォルトマッピングの規則が適用されます。O/Rマッピングファイルでリレーションシップを指定した場合も同様に,デフォルトマッピングが適用されます。

リレーションシップのアノテーションのデフォルトマッピングを使用する場合,データベースのテーブルおよびリレーションが,「8.6.4 デフォルトマッピング(双方向のリレーションシップ)」または「8.6.5 デフォルトマッピング(単方向のリレーションシップ)」にあるデフォルトと異なると,実行時にデータベース問い合わせでSQL文が正しく作成できません。例外が発生します。