2010-04-06 4 views

Répondre

1

Vous pouvez le faire, mais cela nécessite deux requêtes. Cela est dû au fait que, pour trier selon la taille d'une collection, vous devez utiliser un «groupe par», mais cela nécessite que vous énumériez toutes les propriétés de votre sujet. Si vous ajoutez ou en supprimez un, la requête va se casser. Donc, la solution consiste à exécuter une requête qui trouve ids ordonnée, et une seconde qui obtient les instances pour les ids:

String hql = ''' 
SELECT t.id 
FROM Topic t LEFT JOIN t.posts AS post 
GROUP BY t.id 
ORDER BY COUNT(post) DESC 
''' 
def ids = Topic.executeQuery(hql) 
def orderedTopics = Topic.getAll(ids)