我有一个实体联系人,它有三个连接子类(Person,Company,Branch)。 当我在联系人上进行选择查询时,我只能获得人员,公司或分支机构,我可以做
从联系人a.class = Person
中选择
这在人和分支的情况下是正确的。但是因为Branch自己引用了公司(使用CompanyId),而且我现在这样做了
从联系人a.class = Company
中选择
它将用CompanyId(来自Branch-Entity)取代Company。
有人有想法,我如何阻止HQL用真正的列替换类值?
答案 0 :(得分:2)
尝试使用类的完全限定名称(包括命名空间):
select from Contact a where a.class = Your.Namespace.Company
这应该有助于NHibernate区分类名和属性名。