在HQL-Query的where-condition中使用class

时间:2012-08-13 07:16:10

标签: nhibernate hql joined-subclass

我有一个实体联系人,它有三个连接子类(Person,Company,Branch)。 当我在联系人上进行选择查询时,我只能获得人员,公司或分支机构,我可以做

  

从联系人a.class = Person

中选择

这在人和分支的情况下是正确的。但是因为Branch自己引用了公司(使用CompanyId),而且我现在这样做了

  

从联系人a.class = Company

中选择

它将用CompanyId(来自Branch-Entity)取代Company。

有人有想法,我如何阻止HQL用真正的列替换类值?

1 个答案:

答案 0 :(得分:2)

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

select from Contact a where a.class = Your.Namespace.Company

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