按计数HQL排序

时间:2015-06-05 22:06:16

标签: java sql hibernate nhibernate hql

我正在尝试按School s的数量对Student进行排序。他们之间存在ManyToOne / OneToMany关系。

这不起作用,但这是我到目前为止所做的

from School s order by count(s.students)

我不想使用Criteria,因为我必须重构很多代码。有没有办法用HQL来实现这个目标?

2 个答案:

答案 0 :(得分:1)

好的我明白了。这工作

from School s order by size(s.students)

根据Hibernate文档

  

您可以使用特殊属性大小或特殊大小()函数测试集合的大小。

答案 1 :(得分:0)

这应该有效(期待schoolstudent之间存在关联,例如 student.School

//from School s order by count(s.students)
FROM School s 
ORDER BY (
  SELECT count(st) FROM Student st WHERE s.ID = st.School.ID 
)