Nhibernate 在HQL查询的where条件中使用类

Nhibernate 在HQL查询的where条件中使用类,nhibernate,hql,joined-subclass,Nhibernate,Hql,Joined Subclass,我有一个实体联系人,它有三个子类(个人、公司、分支机构)。 当我对联系人进行选择查询时,我可以只获取此人、公司或分支机构的信息 从联系人a中选择,其中a.class=个人 对于人员和分支,这是正确的。但因为Branch自己引用的是Company(和CompanyId),而我现在这样做的时候 从联系人a中选择,其中a.class=公司 它将用CompanyId(来自分公司实体)替换CompanyId 有人知道如何防止HQL用实列替换类值吗?尝试使用类的完全限定名(包括名称空间): 这将有助于NHi

我有一个实体联系人,它有三个子类(个人、公司、分支机构)。 当我对联系人进行选择查询时,我可以只获取此人、公司或分支机构的信息

从联系人a中选择,其中a.class=个人

对于人员和分支,这是正确的。但因为Branch自己引用的是Company(和CompanyId),而我现在这样做的时候

从联系人a中选择,其中a.class=公司

它将用CompanyId(来自分公司实体)替换CompanyId


有人知道如何防止HQL用实列替换类值吗?

尝试使用类的完全限定名(包括名称空间):


这将有助于NHibernate区分类名和属性名。

也许您可以在项目中使用鉴别器?见和。
select from Contact a where a.class = Your.Namespace.Company