问一个使用hibernate对表排序的问题

表中是个1对多的关系,文章Article表是1,浏览量表Watch是多, Article里有个Set。
现在我要按浏览量的高低,也就是Set的大小对Article进行查询。该怎么办。order by 什么?

已经解决了,原来hibernate里自带的有函数,hql = "from Article where deleteFlag = 0 order by size(watches)"; 这样就行了。Article是1,watches是在Article类里定义的Set集合的属性名。Watch表是浏览量表。

文章Article表是1,浏览量表Watch是多,Watch表是干嘛滴?

把set查出来,order by set啊

order by
(
select count(*) from watxh
group by 关联ID
)
试试看吧

后面加上:

order by
(
    select count(*) from watxh w where w.article_id = a.id
)