Bonjour,

J'aimerais écrire une requête en HQL qui me renvoie une liste d'entité triées selon leur nombre d'occurrence.
Je m'explique : pour faire simple, on a une entité Livre qui est liée (ManyToMany) avec une ou plusieurs entités Categorie. J'aimerais afficher la liste des catégories contenues dans les livres présents dans le catalogue, le tout trié suivant leur nombre d'apparition dans les livres.

Par exemple, s'il y a deux livres dont la catégorie est Science-fiction, un livre dont la catégorie est littérature et trois livres dont la catégorie est jeunesse, j'aimerais pouvoir obtenir cette liste :
-jeunesse
-SF
-littérature


Voici ce que j'aimerais écrire en Java(ne fonctionne pas car faux) :
strQuery = "select c " +
"from Categorie as c, count(c.id) as nb " +
"inner join c.livres as livre " +
"order by nb desc";

Auriez-vous une idée de la requête à écrire pour pouvoir obtenir la liste ( getSession().createQuery(strQuery).list() ) ?

Merci