


Comment personnaliser les résultats d'une requête JPA à l'aide de fonctions d'agrégation ?
La plupart du temps, lorsque nous utilisons des requêtes JPA, les résultats obtenus sont mappés à des objets/types de données spécifiques. Mais lorsque nous utilisons des fonctions d'agrégation dans les requêtes, le traitement des résultats nous oblige parfois à personnaliser la requête JPA.
Comprenons (service, employé) à travers un exemple −
Département.java
@Entity public class Dept { @Id private Long id; private String name; @OneToMany(mappedBy = "dep") private List<Employee> emp; //Getters //Setters }
Un service peut avoir un ou plusieurs employés, mais un employé ne peut appartenir qu'à un seul service.
employé.java
@Entity public class Employee { @Id private Long id; private Integer joiningyear; @ManyToOne private Dept dep; //Getters //Setters }
Maintenant, si nous voulons obtenir la date d'entrée et le nombre de salariés regroupés par date d'entrée,
@Repository public interface EmployeeRepository extends JpaRepository<Employee, Long> { // query methods @Query("SELECT e.joiningyear, COUNT(e.joiningyear) FROM Employee AS e GROUP BY e.joiningyear") List<Object[]> countEmployeesByJoiningYear(); }
La requête ci-dessus fonctionne correctement, mais le stockage de valeurs sous la forme de List
La traduction chinoise deCountEmployees.java
est :CountEmployees.java
package com.tutorialspoint; public class CountEmployees { private Integer joinyear; private Long totalEmp; public CountEmployees(Integer joinyear, Long totalEmp) { this.joinyear = joinyear; this.totalEmp = totalEmp; } //Getters //Setters }
Maintenant, nous pouvons personnaliser notre requête JPA comme indiqué ci-dessous −
@Query("SELECT new com.tutorialspoint.CountEmployees(e.joiningyear, COUNT(e.joiningyear)) " + "FROM Employee AS e GROUP BY e.joiningyear") List<CountEmployees> countEmployeesByJoining();
Les résultats de la requête de sélection ci-dessus seront mappés à la classe CountEmployees. De cette façon, nous pouvons personnaliser les requêtes JPA et mapper les résultats aux classes Java.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

SUM dans Oracle est utilisé pour calculer la somme des valeurs non nulles, tandis que COUNT compte le nombre de valeurs non nulles de tous les types de données, y compris les valeurs en double.

La fonction de regroupement de MySQL est utilisée pour calculer des valeurs agrégées en regroupant un ensemble de données. Les fonctions couramment utilisées sont : SUM : Calcule la somme des valeurs dans la colonne spécifiée COUNT : Calcule le nombre de valeurs non NULL dans la colonne spécifiée AVG : Calcule la valeur moyenne des valeurs dans la colonne spécifiée MIN : Calculez la valeur minimale dans la colonne spécifiée. MAX : Calculez le nombre de valeurs non NULL dans la colonne spécifiée, la valeur maximale de

GROUP BY est une fonction d'agrégation dans SQL utilisée pour regrouper les données en fonction de colonnes spécifiées et effectuer des opérations d'agrégation. Il permet aux utilisateurs de : Regrouper les lignes de données en fonction de valeurs de colonne spécifiques. Appliquez une fonction d'agrégation (telle que somme, nombre, moyenne) à chaque groupe. Créez des résumés significatifs à partir de grands ensembles de données, effectuez l'agrégation et le regroupement de données.

La fonction SQL SUM calcule la somme d'un ensemble de nombres en les additionnant. Le processus opérationnel comprend : 1. L'identification de la valeur d'entrée ; 2. La boucle de la valeur d'entrée et sa conversion en nombre ; 3. L'ajout de chaque nombre pour accumuler une somme ; 4. Le renvoi du résultat de la somme ;

Les fonctions d'agrégation en SQL sont utilisées pour calculer et renvoyer une valeur unique pour un ensemble de lignes. Les fonctions d'agrégation courantes incluent : Fonctions d'agrégation numérique : COUNT(), SUM(), AVG(), MIN(), MAX() Fonctions d'agrégation d'ensembles de lignes : GROUP_CONCAT(), FIRST(), LAST() Fonctions d'agrégation statistique : STDDEV ( ), fonctions d'agrégation facultatives VARIANCE() : COUNT(DISTINCT), TOP(N)

La fonction AVG() de MySQL est utilisée pour calculer la moyenne des valeurs numériques. Il prend en charge diverses utilisations, notamment : Calculer la quantité moyenne de tous les produits vendus : SELECT AVG(quantity_sold) FROM sales ; Calculer le prix moyen : AVG(price) ; Calculer le volume moyen des ventes : AVG(quantity_sold * price). La fonction AVG() ignore les valeurs NULL, utilisez IFNULL() pour calculer la moyenne des valeurs non nulles.

La fonction COUNT dans Oracle est utilisée pour compter les valeurs non nulles dans une colonne ou une expression spécifiée. La syntaxe est COUNT(DISTINCT <column_name>) ou COUNT(*), qui compte le nombre de valeurs uniques et toutes non. -valeurs nulles respectivement.

La fonction SUM() en SQL est utilisée pour calculer la somme des colonnes numériques. Il peut calculer des sommes en fonction de colonnes spécifiées, de filtres, d'alias, de regroupement et d'agrégation de plusieurs colonnes, mais ne gère que les valeurs numériques et ignore les valeurs NULL.
