「マップされたスーパークラス」クラスを拡張するエンティティーは、スーパークラスからパーシスタント状態とマッピング情報を継承します。複数のエンティティー・クラスで共通するマッピング情報を定義するには、マップされたスーパークラスを使用する必要があります。
マップされたスーパークラスは、以下のようになります。
抽象クラスまたは具象クラス
マップされたスーパークラスでは、以下のことはできません。
エンティティー・マネージャーまたは照会操作の引数として照会したり受け渡したりすること
パーシスタント関係のターゲットとなること
マップされたスーパークラスは定義済みのデータベース・テーブルを持っていません。その代わり、マッピング情報はスーパークラスから派生しています。特定サブクラスについてのマッピング情報をオーバーライドするには、その特定クラスの @AttributeOverride
注釈を使用します。
マップされたスーパークラスは @MappedSuperclass
の注釈で識別されます。
マップされたスーパークラスのパーシスタンスを既存のエンティティーに追加するには、以下の手順を使用します。
Java クラスをプロジェクト・エクスプローラーから開きます。
「JPA の構造」ビューでクラスを選択します。
「JPA の詳細」ビューで、マッピング型のハイパーリンクをクリックし、「マッピング型の選択」ダイアログにアクセスします。
「マップされたスーパークラス」を選択し、「OK」をクリックします。
「JPA の詳細」ビュー (エンティティー用) の残りの部分を入力します。