Hibernate TABLE_PER_CLASS с @MappedSuperclass не будет создавать запрос UNION

Я пытаюсь создать серию объектов, которые хранятся в отдельных таблицах, но во всех этих таблицах есть набор общих полей. Я хочу, чтобы Hibernate выполнял ОБЪЕДИНЕНИЕ всех этих таблиц, но НЕ ВКЛЮЧАЛ суперкласс в виде таблицы.

Когда я комментирую суперкласс только: @MappedSuperclass @Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)

... hibernate будет запускать (n) запросов отдельно для (n) подтипов суперкласса.

Когда я удаляю @MappedSuperclass и вместо этого помещаю @Entity в суперкласс, Hibernate БУДЕТ выполнять причудливый запрос UNION, но включает суперкласс как таблицу в UNION (для суперкласса нет таблицы).

Как мне получить его в UNION вместе со всеми подклассами (а не отдельными запросами), не делая родительский класс @Entity (потому что это не сущность, для нее нет таблицы)?


person Sean Molloy    schedule 09.07.2011    source источник


Ответы (1)


Я обнаружил, что пометка родительского класса как «абстрактного» помогла, Hibernate больше не включал его в UNION и делал UNION вместе со всеми подклассами.

person Sean Molloy    schedule 09.07.2011