Использование класса в условии where HQL-Query
У меня есть контакт юридического лица, у которого есть три соединенных подкласса (Лицо, Компания, Филиал). Когда я делаю запрос на выборку в Контакте, где я должен получить только информацию о Человеке, Компании или Филиале, я могу сделать
выберите из Контакт a, где a.class = Персона
это работает правильно в случае человека и филиала. Но потому что Branch сам ссылается на Company (с CompanyId), а когда я делаю сейчас
выберите из Контакт a, где a.class = Компания
он заменит Компанию на CompanyId (от Филиала).
У кого-нибудь есть идея, как я могу предотвратить замену значения класса HQL реальным столбцом в HQL?
1 ответ
Решение
Попробуйте использовать полное имя класса (включая пространство имен):
select from Contact a where a.class = Your.Namespace.Company
Это должно помочь NHibernate отличать имя класса от имени свойства.