#java #sql #database #hibernate #hql
#java #sql #База данных #гибернация #hql
Вопрос:
В гибернации я хочу выбрать значение дискриминатора. Что-то вроде
select discriminator, id, name, age from Animal
Идея состоит в том, чтобы отправить результат этого запроса на сторону клиента, чтобы я мог отображать другой значок на основе значения столбца-дискриминатора (т. Е. cat, dog, elephant и т.д.).
Возможно ли это? Как?
Ответ №1:
Вы можете сделать это следующим образом:
select a.class, a.id, a.name, a.age from Animal a
Из документации по гибернации:
Специальный класс свойств получает доступ к значению дискриминатора экземпляра в случае полиморфной сохраняемости.
Комментарии:
1. Отлично! Сначала это не сработало, потому что я не определился с
a.
и написалselect class ...
Ответ №2:
Объекты запроса Hibernate не знают столбцов. Итак, если у вас нет свойства с именем discriminator в вашем объекте Animal, вы не можете этого сделать. Вы можете выполнить запрос в sql или получить весь объект, а затем получить унаследованный тип, для этого вы можете использовать «instanceof»