HibernateJPAを使用しています。
私がこれらのクラスを持っているとしましょう:
AbstractPerson
|--> ConcreteEmployee
|--> ConcreteCustomer
具体的なクラスに独立したIDを持たせる方法はありますか?
InheritanceType.TABLE_PER_CLASSを使用しています。
HibernateJPAを使用しています。
私がこれらのクラスを持っているとしましょう:
AbstractPerson
|--> ConcreteEmployee
|--> ConcreteCustomer
具体的なクラスに独立したIDを持たせる方法はありますか?
InheritanceType.TABLE_PER_CLASSを使用しています。
Hibernate Annotationsリファレンスガイドから:
2.2.4.1。クラスごとのテーブル
この戦略には、JPA仕様、Hibernateリファレンスドキュメント、Hibernate in Action、およびその他の多くの場所で説明されている多くの欠点(特に、多態的なクエリと関連付け)があります。
SQL UNION
Hibernateは、クエリを使用してこの戦略を実装するそれらのほとんどを回避します。これは通常、継承階層の最上位に使用されます。@Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Flight implements Serializable { ... }
この戦略は、双方向である場合、1対多の関連付けをサポートします。この戦略はジェネレーター戦略をサポートしていません
IDENTITY
。IDは複数のテーブル間で共有する必要があります。したがって、この戦略を使用する場合は、またはを使用しAUTO
ないでIDENTITY
ください。
だから私はあなたが望むものがサポートされていないのではないかと心配しています(そして私は使用することをお勧めしますGenerationType.TABLE
)。