Подтвердить что ты не робот

Java hibernate: выбор столбца дискриминатора в полиморфном запросе hql

В спящем режиме я хочу выбрать значение дискриминатора. Что-то вроде

select discriminator, id, name, age from Animal

Идея состоит в том, чтобы отправить результат этого запроса на клиентскую сторону, чтобы я мог отображать другой значок, основанный на значении столбца дискриминатора (т.е. cat, dog, слон и т.д.).

Это возможно? Как?

4b9b3361

Ответ 1

Вы можете сделать это следующим образом:

select a.class, a.id, a.name, a.age from Animal a

Из Hibernate Documentation:

Специальный класс свойств обращается к значению дискриминатора экземпляра в случае полиморфного сохранения.

Ответ 2

Объекты запроса Hibernate, не знают столбцы. Поэтому, если у вас нет свойства с именем дискриминатор в вашем объекте Animal, вы не можете этого сделать. Вы можете выполнить запрос в sql или получить весь объект, а затем получить унаследованный тип, для которого вы можете использовать "instanceof"