Hibernate ポリモーフィック マッピングでは、継承されたクラスをデータベースにマッピングでき、次のマッピング タイプを提供します。 join-subclass: 親クラスのすべての列を含む、サブクラス用の別個のテーブルを作成します。 table-per-class: サブクラス固有の列のみを含む、サブクラス用の別個のテーブルを作成します。 Union-subclass: joined-subclass と似ていますが、親クラス テーブルがすべてのサブクラス列を結合します。
#Hibernate ポリモーフィック マッピング: 詳細な分析
はじめにオブジェクト指向プログラミングにおける, 継承されたクラスをデータベースにマップする必要がある状況がよく発生します。 Hibernate は、ポリモーフィック マッピング機能を通じてこの要件を簡単に達成できます。
#ポリモーフィック マッピング タイプHibernate は、継承されたクラス間の関係を処理するために、いくつかのポリモーフィック マッピング タイプを提供します。
抽象クラス person
と 2 つのサブクラス Student
および Teacher ## があるとします。 #。
Person クラスには
id フィールドと
name フィールドがあり、
Student クラスには
grade フィールドがあります。 Teacher
クラスには salary
フィールドがあります。 Hibernate マッピング構成
人向け クラス:
@Entity @Inheritance(strategy = InheritanceType.JOINED) public abstract class Person { @Id private Long id; private String name; // ... 省略其他字段 }
学生
向け クラス: @Entity public class Student extends Person { private Integer grade; // ... 省略其他字段 }
Teacher
クラスの場合:
@Entity public class Teacher extends Person { private Integer salary; // ... 省略其他字段 }
クエリの例
Session session = sessionFactory.getCurrentSession(); List<Person> persons = session.createQuery("from Person", Person.class).list();
継承されたクラスのマッピングが簡素化されます。
すべてのサブカテゴリ データを一貫した方法で取得する多態性クエリをサポートします。適切な継承戦略を選択することが重要であり、これはパフォーマンスと可用性の機能に影響します。
ポリモーフィック マッピングを使用する場合は、データベース テーブルの構造がマッピング構成と一致していることを確認する必要があります。以上がHibernate はポリモーフィック マッピングをどのように実装しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。