jiber hibernate: выбор столбца дискриминатора в полиморфном hql-запросе - PullRequest
16 голосов
/ 07 апреля 2011

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

select discriminator, id, name, age from Animal

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

Возможно ли это?Как?

Ответы [ 2 ]

27 голосов
/ 07 апреля 2011

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

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

С Документация Hibernate :

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

1 голос
/ 10 сентября 2015

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

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