3

すべてが別々のテーブルに格納される一連のオブジェクトを作成しようとしていますが、これらすべてのテーブルに共通のフィールドセットがあります。私はHibernateにこれらすべてのテーブルのUNIONを実行させたいが、スーパークラスをテーブルとしてインクルードしない。@MappedSuperclassを使用したHibernate TABLE_PER_CLASSはUNIONクエリを作成しません。

私はちょうどでスーパークラスに注釈を付ける: @MappedSuperclass @Inheritance(戦略= InheritanceType.TABLE_PER_CLASS)

...休止状態(n)が実行されますスーパークラスの(n)のサブタイプに対して個別に照会します。

@MappedSuperclassを削除し、代わりにスーパークラスに@Entityを置くと、HibernateはファンシーなUNIONクエリを実行しますが、スーパークラスをUNIONのテーブルとして含めます(スーパークラスのテーブルはありません)。

親クラスを@Entity(エンティティではないので、テーブルがありません)にすることなく、すべてのサブクラス(別々のクエリではない)を一緒にUNIONに取得するにはどうすればよいですか?

答えて

4

私は、親クラスを「抽象的」とマークすると、ユニバースに含まれなくなり、 UNIONのすべてのサブクラスをトリックしたことがわかりました。

関連する問題