EER モデルには、サブクラス エンティティがあります。それを実際のSQLテーブルに実装する方法は何なのか、またはエンティティのサブクラスをテーブルに実装する方法を理解するのに役立つガイドがあるかどうか疑問に思っていました。ありがとう
2 に答える
Martin Fowler の著書Patterns of Enterprise Application Architectureでは、テーブルをサブクラス化するためのソリューションについて説明しています。
これらは、@ spencer7593 からの回答のオプションに対応しており、Java と Hibernate に関連付けられていません。
Hibernate のドキュメントでは、リレーショナル データベースで継承階層を表すために使用できるオプションについて説明しています。間違いなくもっと優れたチュートリアルがありますが、Hibernate ORM (love-it-or-hate-it) はこの問題に取り組みました。
継承階層を表現するための単一の「最善の方法」はないため、すべてのオプションがサポートされています。
クラス階層ごとのテーブル - 基本的に、すべてのサブクラスのすべての属性を含む 1 つのテーブル。多くの行で多くの列が null になる可能性があります
サブクラスごとのテーブル - スーパークラス用に 1 つのテーブル、サブクラスごとに個別のテーブル
具体的なサブクラスごとのテーブル - サブクラスごとに個別のテーブル (スーパークラスのテーブルなし)
唯一の正解はありません。これらのアプローチにはそれぞれ利点と欠点があります。
http://docs.jboss.org/hibernate/orm/3.3/reference/en-US/html/inheritance.html