2009-03-03 41 views
1

使用Cats和Kittens的標準NHibernate示例,我將如何使用ICriteria根據Kitten計數對Cat分類?例如,我想要做類似的事情:使用ICriteria&NHibernate按集合計數排序

ICriteria crit = Session.CreateCriteria(typeof(Cat)); 
return crit.Order(Order.Asc("**Kittens.Count**")); 

任何人都知道如何做到這一點?

回答

1

在HQL,你可以做這樣的:

select cat 
from Eg.Cat cat 
join cat.Kittens kitten 
group by cat 
order by count(kitten) asc 
1

http://forum.hibernate.org/viewtopic.php?p=2401219

這是Java的休眠,但幾乎同樣的事情(投影,AddOrder)

+0

當我做投影與AddOrder crit.SetProjection(Projections.Alias(Projections.Count(「Kittens」),「kcnt」))。SetResultTransformer(CriteriaUtil.DistinctRootEntity).List(); 該列表只有1個結果 - 一個整數! – 2009-03-03 01:35:12