エンティティーの継承の指定

エンティティーは他のエンティティーからプロパティーを継承できます。特定の戦略を指定して継承に使用できます。

既存のエンティティー (@Entity) について継承 (@Inheritance) を指定するには、以下の手順を使用します。

  1. プロジェクト・エクスプローラーからエンティティーを選択します。

  2. 「JPA の詳細」ビューで、「継承」情報を選択します。

    継承の指定

    「JPA の詳細」ビューの「継承」領域の選択。
  3. 「戦略」リストで、以下の継承戦略のいずれか 1 つを選択します。

    • 単一テーブル (デフォルト)

    • 結合テーブル

    • クラスあたり 1 テーブル

  4. 以下の表を使用して、タブの残りのフィールドに入力します。詳しくは、『継承情報』を参照してください。

    プロパティー 説明 デフォルト
    判別プログラムの列 「単一」または「結合」の継承戦略を使用するときの判別プログラムの列の名前。

    このフィールドは @DiscriminatorColumn の注釈に対応します。


    判別プログラムの型 判別プログラムの型を Char または Integer に設定します (デフォルトは String)。「判別プログラムの値」はこの型に準拠する必要があります。 String
    判別プログラムの値 この継承の階層のエンティティーを区別するために使用する判別プログラムの値を指定します。値は指定した「判別プログラム・タイプ」に準拠する必要があります。

    このフィールドは @DiscriminatorValue の注釈に対応します。


    デフォルト値のオーバーライド このフィールドを使用して、カスタムの主キーの結合列を指定します。

    このフィールドは @PrimaryKeyJoinClumn の注釈に対応します。



Eclipse は以下の注釈をエンティティー・フィールドに追加します。

@Inheritance(strategy=InheritanceType.<INHERITANCE_STRATEGY>)
@DiscriminatorColumn(name="<DISCRIMINATOR_COLUMN>",
    discriminatorType=<DISCRIMINATOR_TYPE>)
@DiscriminatorValue(value-"<DISCRIMINATOR_VALUE>")
@PrimaryKeyJoinColumn(name="<JOIN_COLUMN_NAME>",
    referencedColumnName = "<REFERENCED_COLUMN_NAME>")


以下の図は異なる継承戦略を示したものです。

単一テーブル継承

この図は単一テーブルでのエンティティー継承を示したものです。

結合テーブル継承

この図は、結合サブクラスの継承戦略を示したものです。

 

関連タスク

クラスへのパーシスタンスの追加

 

関連概念

Java パーシスタンスの理解