Используйте тип объекта в HQL, где предложение - PullRequest
4 голосов
/ 16 декабря 2008

В моей доменной модели у меня есть абстрактный класс CommunicationChannelSpecification, который имеет дочерние классы, такие как FTPChannelSpecification, EMailChannelSpecification и WebserviceChannelSpecification. Теперь я хочу создать HQL-запрос, содержащий предложение where, сужающее результат до определенных типов спецификаций канала. Например. (простым языком) выберите все CommunicationChannelSpecification, типы которых встречаются в наборе {FTPChannelSpecification, WebserviceChannelSpecification}.

Как этого достичь в HQL? Я использую NHibernate 2.0.1 и стратегию отображения наследования таблиц на подклассы ...

Спасибо!

Паскаль

Ответы [ 2 ]

8 голосов
/ 16 декабря 2008

Не положительно в NHibernate, но в Hibernate есть два специальных свойства, на которые всегда ссылаются id и class. Итак, для вашего конкретного случая я бы сделал

from CommunicationChannelSpecifications spec where spec.class in (?)
0 голосов
/ 17 декабря 2008

В этом случае NHibernate поддерживает тот же синтаксис, что и Hibernate. См. здесь для примера.

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