Nhibernate 集合中的特定大小,包括带有HQL的第二个筛选器?

Nhibernate 集合中的特定大小,包括带有HQL的第二个筛选器?,nhibernate,hql,Nhibernate,Hql,我正在与以下场景作斗争:假设我有两个实体教室和成员,用多对多映射。教室有集合成员,包含实体成员。 我想得到有一定数量成员的教室。这将导致如下结果: 来自教室cr,其中cr.Members.size

我正在与以下场景作斗争:假设我有两个实体
教室
成员
,用多对多映射。教室有集合
成员
,包含实体
成员
。 我想得到有一定数量成员的教室。这将导致如下结果:

来自教室cr,其中cr.Members.size<10

现在我在教室里有一个
类型
。我想先过滤类型,然后过滤尺寸。这行不通:

来自教室cr,其中cr.Members.size<10和cr.Members.Type=1

结果:
非法尝试取消引用集合


我如何编写这样的查询?

我想您需要进行一次连接

from Classroom as cr left join cr.Members as m
where cr.Members.size < 10 and m.Type = 1
从教室作为cr离开加入cr。成员作为m
其中cr.构件尺寸<10,m.类型=1

我也以加入而告终-不幸的是,尽管使用了
DistinctRootEntityResultTransformer
,但我在结果中遇到了多个教室的问题。整个查询比上面的示例要复杂得多(我猜它会像上面的示例那样工作),所以我仍然被后处理过滤所困扰,导致了丑陋的延迟负载和性能问题)。