3.2.4.2. クラス階層ごとの単一テーブル


すべてのスーパークラスおよびサブクラスのすべてのプロパティは同じテーブルにマップされ、インスタンスは特殊な判別子カラムによって区別されます。
@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
    name="planetype",
    discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue("Plane")
public class Plane { ... }

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

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.