1

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

从 Contact a 中选择 a.class = Person

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

从 Contact a 中选择 a.class = Company

它将用 CompanyId(来自分支实体)替换 Company。

有人有想法吗,我如何防止 HQL 用真实列替换类值?

4

1 回答 1

2

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

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

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

于 2012-08-13T07:35:43.977 回答