Вы можете сделать это, но это требует двух запросов.Это связано с тем, что для упорядочения по размеру коллекции вам нужно использовать 'group by', но для этого необходимо перечислить все свойства вашей темы.Если вы добавите или удалите один, запрос будет прерван.Таким образом, решение состоит в том, чтобы запустить один запрос, который находит упорядоченные идентификаторы, и второй, который получает экземпляры для этих идентификаторов:
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)