Adloun

Spring Boot : écrire le serveur (école d'ingénieur) · Chapitre 5 · Application directe du cours

La valeur du stock de chaque rayon

Les données en base avec JPA et Spring Data · niveau 2

Énoncé

Le libraire veut connaître, pour chaque rayon, la valeur de son stock (somme des prix multipliés par les stocks). Écrire une requête JPQL qui renvoie directement une liste de records ValeurRayon(String rayon, BigDecimal valeur), triée par rayon, et calculer à la main le résultat attendu pour l'Informatique.

Corrigé

JPQL sait appeler le constructeur d'un record, désigné par son nom complet :


    // Exercice 5.3 : la valeur du stock de chaque rayon
    @Query("""
            select new fr.librairie.ValeurRayon(l.rayon, sum(l.prix * l.stock))
            from Livre l group by l.rayon order by l.rayon""")
    List<ValeurRayon> valeurParRayon();

package fr.librairie;

import java.math.BigDecimal;

public record ValeurRayon(String rayon, BigDecimal valeur) {
}

SQL émis (le produit et la somme sont calculés par la base) :


Hibernate: select l1_0.rayon,sum((l1_0.prix*l1_0.stock)) from livre l1_0 group by l1_0.rayon order by l1_0.rayon

Pour l'Informatique : euros. Le test attend la liste complète : Informatique 651,00 ; Littérature 283,60 () ; Mathématiques 315,00 ; Physique 0,00.

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →