Maison > base de données > tutoriel mysql > Comment implémenter la clause GROUP BY dans Hibernate à l'aide de l'API Criteria ?

Comment implémenter la clause GROUP BY dans Hibernate à l'aide de l'API Criteria ?

Patricia Arquette
Libérer: 2025-01-02 22:48:39
original
887 Les gens l'ont consulté

How to Implement GROUP BY Clause in Hibernate Using Criteria API?

Implémentation d'un objet Groupe par critères dans Hibernate

Dans Hibernate, l'API Criteria vous permet de construire des requêtes complexes et de récupérer des données de la base de données à l'aide d'un objet -des critères orientés. Pour implémenter une requête SQL à l'aide de l'API Criteria, vous devez utiliser la méthode createCriteria() dans la session Hibernate.

Pour une requête SQL telle que :

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name <operator> value
GROUP BY column_name
Copier après la connexion

Vous pouvez utiliser groupProperty () de la classe CriteriaQuery pour regrouper les résultats par la colonne spécifiée. Vous pouvez également utiliser les fonctions d'agrégation fournies par la classe Projections pour effectuer les opérations d'agrégation souhaitées.

Voici un exemple de la façon dont vous pouvez implémenter cette requête à l'aide des critères Hibernate :

CriteriaQuery<Tuple> criteriaQuery = session.getCriteriaBuilder().createTupleQuery();
Root<SomeTable> root = criteriaQuery.from(SomeTable.class);

criteriaQuery.multiselect(
    root.get("column_name"),
    Projections.max(root.<Double>get("column_name")),
    Projections.min(root.<Double>get("column_name")),
    Projections.count(root.get("column_name"))
);

criteriaQuery.where(
    session.getCriteriaBuilder().ge(root.<Double>get("column_name"), value)
);

criteriaQuery.groupBy(root.get("column_name"));

List<Tuple> result = session.createQuery(criteriaQuery).getResultList();
Copier après la connexion

Ceci La requête de critères renverra une liste de tuples contenant le nom_colonne, sa valeur maximale, sa valeur minimale et son nombre, regroupés par nom_colonne. Notez que le type de fonction d'agrégation dépend du type de colonne sur laquelle vous effectuez l'agrégation.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal