3.2.4. 継承のマッピング


EJB3 は 3 つのタイプの継承をサポートします。
  • クラス方針ごとのテーブル: Hibernate の <union-class> エレメント
  • クラス階層ごとに単一のテーブル方針 (Single Table per Class Hierarchy Strategy): Hibernate の <subclass> エレメント
  • 結合サブクラス方針 (Joined Subclass Strategy): Hibernate の <joined-subclass> エレメント
選択された方針は、@Inheritance アノテーションを使用して階層の最上位のエンティティのクラスレベルで宣言されます。

注記

インターフェースのアノテーションは現在サポートされていません。

3.2.4.1. クラスごとのテーブル

この方針には、EJB3 仕様、Hibernate リファレンスドキュメンテーション、Hibernate in Action などで説明された多くの欠点 (特に、ポリモーフィックなクエリや関係に関する問題) があります。Hibernate では、SQL UNION クエリを使用してこの方針を実装することによりこれらのほとんどの問題を回避しています。
@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public class Flight implements Serializable {
この方針は 1 対多の関係 (双方向である場合) をサポートします。この方針は IDENTITY ジェネレータ方針をサポートしません。ID は複数のテーブルで共有する必要があります。したがって、この方針を使用する場合は、AUTO IDENTITY を使用しないでください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

© 2024 Red Hat, Inc.