Ленивые выборки столбцов подкласса (Java / Hibernate) - PullRequest
0 голосов
/ 14 февраля 2020

Предположим, что существуют два объекта JPA, использующие наследование объединенной таблицы Hibernate с различающим столбцом:

Суперкласс: Форма

Подкласс: Цикл

Запуск JPQL select s from Shape s where s.id=?1 this возвращается ошибка:

Error: org.hibernate.WrongClassException: Object [id=61] was not of the specified subclass [model.Shape] : Discriminator: Cycle

Это происходит из-за того, что hibernate также с нетерпением пытается извлечь информацию о цикле, но по какой-то архитектурной причине класс Cycle отсутствует в пути к классам.

Вопрос: Есть ли способ отключить запрос вторичного соединения, который Hibernate выполняется автоматически, чтобы присоединиться к столбцам подкласса? Скажем что-то вроде этого:

@Entity
@Inheritance(strategy = InheritanceType.JOINED) //Q: something here like 'fetch = FetchType.LAZY'
@DiscriminatorColumn(name = "DTYPE", discriminatorType = DiscriminatorType.STRING)
public class Shape {}

Я решил это с помощью проекции (верните нужные мне столбцы), но я вынужден выполнить дополнительные запросы для объединенных столбцов, невозможно присоединиться к выборке таблицы для улучшения производительности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...