Nhibernate左边加入'with'仍然拉回所有子对象

时间:2010-11-12 16:41:46

标签: nhibernate

我有以下hql:

Select q FROM GeneralQuestion q 
Left Join q.QuestionResponses as qr with qr.ContactUid = :contactuid 
WHERE q.ParentUid = :audituid 

显然,GeneralQuestion包含QuestionResponse对象的集合。我使用了with关键字,我认为这会限制QuestionResponse对象只返回那些具有该特定contactuid的QuestionRespone对象。

问题是每个GeneralQuestion stil包含所有QuestionResponses。

有没有办法限制返回的QuestionResponse对象只是那个contactuid?

我认为这是关键所在,我现在很困惑。

1 个答案:

答案 0 :(得分:0)

如果查看执行的SQL,它可能在查询时只检索过滤后的记录,然后在使用时懒洋洋地重新加载它。

这是有道理的,因为NH必须跟踪他们的状态。

您需要做的是直接在您的选择列表中检索QuestionResponse实例,这将是您的“过滤集合”