Table des matières
Département.java
employé.java
CountEmployees.java
Maison Java javaDidacticiel Comment personnaliser les résultats d'une requête JPA à l'aide de fonctions d'agrégation ?

Comment personnaliser les résultats d'une requête JPA à l'aide de fonctions d'agrégation ?

Sep 18, 2023 pm 04:49 PM
Personnaliser Fonction d'agrégation requête jpa

Comment personnaliser les résultats dune requête JPA à laide de fonctions dagré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 Au lieu de cela, nous pouvons personnaliser la requête JPA pour mapper les résultats de la requête ci-dessus dans une classe Java. Cette classe Java n'est qu'un simple POJO (Plain Old Java Object) et n'a pas besoin d'être annotée avec @Entity.

La traduction chinoise de

CountEmployees.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!

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

La différence entre la somme et le compte dans Oracle La différence entre la somme et le compte dans Oracle May 02, 2024 pm 11:09 PM

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.

Comment utiliser la fonction somme dans SQL Comment utiliser la fonction somme dans SQL May 02, 2024 am 12:01 AM

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.

Comment utiliser group by et order by ensemble dans SQL Comment utiliser group by et order by ensemble dans SQL May 02, 2024 am 03:09 AM

Les données groupées peuvent être triées à l'aide de GROUP BY et ORDER BY : 1. GROUP BY regroupe les données 2. ORDER BY trie chaque groupe de données ;

Qu'est-ce qu'une colonne non agrégée dans SQL Qu'est-ce qu'une colonne non agrégée dans SQL May 01, 2024 pm 10:51 PM

Les colonnes non agrégées dans SQL sont des colonnes qui stockent des valeurs d'enregistrement uniques et ne sont pas traitées par les fonctions d'agrégation. Ces colonnes contiennent des valeurs uniques pour chaque enregistrement et sont utilisées pour identifier, catégoriser ou filtrer les données.

Comment la somme en SQL est calculée Comment la somme en SQL est calculée May 09, 2024 am 09:27 AM

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 ;

Quelles sont les fonctions d'agrégation dans SQL Quelles sont les fonctions d'agrégation dans SQL May 02, 2024 am 01:12 AM

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)

Que signifie sc dans SQL ? Que signifie sc dans SQL ? May 02, 2024 am 03:33 AM

SC signifie SELECT COUNT en SQL, une fonction d'agrégation utilisée pour compter le nombre d'enregistrements, qu'une condition soit remplie ou non. Syntaxe SC : SELECT COUNT(*) AS record_count FROM table_name WHERE condition, où COUNT(*) compte le nombre de tous les enregistrements, table_name est le nom de la table et condition est une condition facultative (utilisée pour compter le nombre d'enregistrements qui répondent aux condition).

Comment utiliser la moyenne dans MySQL Comment utiliser la moyenne dans MySQL May 01, 2024 pm 09:16 PM

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.

See all articles