Requête Hibernate Group-By utilisant des critères
Dans cette question, un utilisateur demande de l'aide pour implémenter une requête SQL avec des critères Hibernate. La requête implique de regrouper les résultats en fonction d'une colonne, d'appliquer une fonction d'agrégation et de filtrer les enregistrements en fonction d'une comparaison avec une valeur.
Pour y parvenir à l'aide des critères Hibernate, l'utilisateur peut utiliser la méthode groupProperty() sur le Objet Criteria et combinez-le avec les fonctions d’agrégation pertinentes fournies par la classe Projections. Par exemple, considérons la requête SQL suivante :
SELECT column_name, max(column_name), min(column_name), count(column_name) FROM table_name WHERE column_name > xxxxx GROUP BY column_name
L'objet Hibernate Criteria correspondant serait :
List result = session.createCriteria(SomeTable.class) .add(Restrictions.gt("someColumn", xxxxx)) .setProjection(Projections.projectionList() .add(Projections.groupProperty("someColumn")) .add(Projections.max("someColumn")) .add(Projections.min("someColumn")) .add(Projections.count("someColumn"))) .list();
En résumé, en incorporant groupProperty() et les fonctions d'agrégation de Projections, Hibernate Les objets critères fournissent un mécanisme puissant pour exécuter efficacement des requêtes groupées complexes.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!