TP JPA : Interrogation avancée avec une bibliothèque universitaire

Java
JPA
I211
TP
Mise en pratique des différentes techniques d’interrogation JPA
Auteur
Affiliations

Université de Toulon

LIS UMR CNRS 7020

Date de publication

2025-02-03

1 Objectif

Implanter un système de gestion de bibliothèque universitaire. Illuster l’utilisation des identifiants, de l’héritage et des requêtes JPQL.

2 Modèle de données

Utilisez le projet : https://github.com/ebpro/sample-jpalibrary

  • Etudier le projet
  • Etudier le schéma relationnel généré
  • Changer la stratégie d’héritage pour Document et observer les différences.
  • Etudier les IDs

3 Exercices d’interrogation

3.1 Requêtes JPQL basiques

  • Lister tous les documents d’un auteur
  • Trouver les emprunts en cours
  • Compter le nombre d’emprunts par utilisateur

3.2 Projections et DTOs

  • Créer un DTO pour les statistiques d’emprunt
  • Utiliser des projections pour les résumés de documents

3.3 Named Queries

  • Définir des requêtes nommées pour les recherches fréquentes

3.4 (Facultatif) Entity Graphs

  • Optimiser le chargement des associations avec les Entity Graphs

3.5 (Facultatif) Criteria API

  • Implémenter une recherche via l’API
  • Construire des requêtes dynamiques

4 Pattern Repository

  • Ajouter un repository pour gérer les différentes entités.
  • Mettez à jour et compléter si besoin les générateurs de données.

5 (Facultatif) pour aller plus loin

  • Contrôler vos entités avec des Bean Validation : https://bruno.univ-tln.fr/notebooks-develop/notebook-java-beanvalidation/
  • Ajouter des tests unitaires et d’intégration

Réutilisation