2012-08-13 40 views
1

我有一個實體聯繫有三個聯合子類(Person,Company,Branch)。 當我做一個聯繫人選擇查詢,我應該只得到人的,公司或分公司,我能做到使用類在HQL的條件 - 查詢

從一個聯繫,其中的A.class =人

這是工作選擇正確的人和分支的情況下。但由於分公司是他自己引用公司(與CompanyId),當我從一聯繫,現在做

選擇其中的A.class =公司

它將與CompanyId取代公司(從科順實體)。

有人有一個想法,我如何防止HQL用真正的列替換類值?

+0

也許你可以使用鑑別器,而不是你的項目?見[這裏](http://stackoverflow.com/questions/6887168/using-discriminator-with-fluent-nhibernate)和[這裏](http://stackoverflow.com/questions/4708969/query-by-discriminator-在-NHibernate的)。 – Handprint 2012-08-14 13:21:54

回答

2

嘗試使用類的完全限定域名(包括命名空間):

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

這應有助於NHibernate的從屬性名稱區分類名。