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
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();
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!