Requêtes JPA
Requêtes JPA : dérivation par nom de méthode, @Query avec JPQL, requêtes natives, pagination, sorting
1Qu'est-ce que JPQL ?
Qu'est-ce que JPQL ?
Réponse
JPQL (Java Persistence Query Language) est un langage orienté objet qui interroge les entités JPA plutôt que les tables de base de données. Contrairement au SQL natif, JPQL utilise les noms de classes et de propriétés, ce qui permet de maintenir l'abstraction objet et facilite la portabilité entre différents SGBD. Utiliser JPQL par défaut sauf si des fonctionnalités SQL spécifiques sont nécessaires.
2Quelle annotation permet d'exécuter une requête JPQL ou SQL personnalisée ?
Quelle annotation permet d'exécuter une requête JPQL ou SQL personnalisée ?
Réponse
L'annotation @Query permet de définir des requêtes personnalisées directement dans les repositories Spring Data JPA. Elle peut contenir du JPQL par défaut ou du SQL natif si l'attribut nativeQuery est défini à true. Cette annotation offre plus de flexibilité que les query methods dérivés du nom de méthode, notamment pour les requêtes complexes avec jointures ou sous-requêtes.
3Comment lier un paramètre de méthode à une requête @Query ?
Comment lier un paramètre de méthode à une requête @Query ?
Réponse
L'annotation @Param permet de nommer explicitement les paramètres utilisés dans les requêtes @Query. Cette approche est plus lisible et robuste que l'utilisation de positions indexées, notamment lors de la refactorisation du code. L'annotation est obligatoire pour les paramètres nommés en JPQL et recommandée même pour les requêtes SQL natives afin d'améliorer la maintenabilité.
Dans JPQL, quelle clause permet de filtrer les résultats ?
Quelle est la différence principale entre JPQL et SQL natif ?
+27 questions d'entretien
Autres sujets d'entretien Spring Boot
Spring Core - IoC & DI
Spring Boot Auto-Configuration
Spring Boot Starters
Application Properties & YAML
Logging avec SLF4J et Logback
Spring Boot DevTools
Spring MVC Basics
Spring REST Controllers
Request & Response Handling
Gestion des exceptions
Validation avec Bean Validation
Spring Data JPA - Les bases
Entités JPA et relations
Spring Data Repositories
Spring Security - Les bases
Spring Boot Actuator
Tests unitaires avec JUnit et Mockito
Tests Spring Boot
Profiles et Environment
RestTemplate et WebClient
Async et Scheduling
Caching avec Spring
Spring WebFlux (Reactive)
Transactions Spring
Authentification et autorisation avancées
JWT et sécurité stateless
OAuth2 et Authorization Server
Spring Boot et Docker
Microservices avec Spring
Spring Cloud Config
Optimisation des performances
GraalVM Native Images
Maîtrise Spring Boot pour ton prochain entretien
Accède à toutes les questions, flashcards, tests techniques, exercices de code review et simulateurs d'entretien.
Commencer gratuitement