Spring Boot JPA et Hibernate : Spring Data en pratique
Spring Data JPA et Hibernate en pratique : entités, relations, lazy loading, pagination et optimisation des requêtes SQL.
Introduction
Spring Boot JPA s’appuie sur Hibernate et Spring Data : l’essentiel de l’accès aux données est généré à partir de vos repositories. Spring Data JPA permet de manipuler des données de manière simple, tout en s’appuyant sur Hibernate, le moteur ORM le plus utilisé dans l’écosystème Java. Pour produire des applications fiables et performantes, il est essentiel de comprendre les mécanismes internes, la gestion des transactions et l’impact des relations.
Ce chapitre vous donne une maîtrise avancée de Spring Data JPA : mapping, relations, cascade, transactions, performance, pagination, verrouillages et bonnes pratiques.
Lexique essentiel
Entity
Objet métier persistant géré par Hibernate.
Repository
Interface Spring Data pour manipuler les entités.
Lazy Loading
Chargement à la demande pour éviter les surcoûts.
Transaction
Contexte d’exécution garantissant la cohérence des données.
Locking
Mécanismes de concurrence : pessimistic / optimistic.
Cascade
Propagation des opérations (persist, remove, merge…).
1. Créer une entité propre et professionnelle
import jakarta.persistence.*;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@Entity
@Table(name = "orders")
public class Order {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String customerId;
@Enumerated(EnumType.STRING)
private OrderStatus status;
private BigDecimal total;
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL, orphanRemoval = true)
private List<OrderItem> items = new ArrayList<>();
protected Order() { } // constructeur sans argument exigé par JPA
// Méthode utilitaire : garde les deux côtés de la relation synchronisés
public void addItem(OrderItem item) {
items.add(item);
item.setOrder(this); // OrderItem porte @ManyToOne(fetch = FetchType.LAZY) Order order
}
}
La suite de cette leçon est réservée aux abonnés
Les 3 premières leçons de chaque formation sont gratuites. Débloquez la suite pour continuer.
Déjà abonné ? Se connecter
