3.2.4.2. クラス階層ごとの単一テーブル
すべてのスーパークラスおよびサブクラスのすべてのプロパティは同じテーブルにマップされ、インスタンスは特殊な判別子カラムによって区別されます。
Plane はスーパークラスであり、継承方針 InheritanceType.SINGLE_TABLE を定義します。また、@DiscriminatorColumn アノテーションを使用して判別子カラムを定義し、判別子カラムは判別子タイプを定義することもできます。最後に、@DiscriminatorValue アノテーションは階層のクラスを区別するために使用される値を定義します。これらすべての属性は適切なデフォルトの値を持ちます。判別子カラムのデフォルト名は、 DTYPE です。デフォルトの判別子の値は DiscriminatorType.STRING のエンティティ名 (@Entity.name で定義済み) です。A320 はサブクラスです。デフォルト値を使用したくない場合にのみ、判別子の値を定義する必要があります。方針と判別子タイプは暗黙的です。
@Inheritance と @DiscriminatorColumn はエンティティ階層の最上位で定義する必要があります。