Le piège classique de l'accès aux données en JPA/Hibernate
Vous développez tranquillement votre application Spring Boot, tout fonctionne parfaitement en local... puis soudain, en production : LazyInitializationException.
Cette erreur survient quand on essaie d'accéder à une relation paresseuse (lazy) alors que la session Hibernate est déjà fermée. C'est comme vouloir ouvrir une porte dont on n'a plus la clé.
Comment s'en sortir ?
1- Anticipez vos besoins : Utilisez des requêtes avec JOIN FETCH pour charger ce dont vous avez besoin d'un coup
2- Pensez transaction : Gardez votre @Transactional au niveau service, pas repository
3- Projection intelligente : Créez des DTOs avec uniquement les données nécessaires
L'ORM, c'est puissant mais ça demande de comprendre son cycle de vie. Une fois qu'on maîtrise, fini les surprises désagréables.
Merci du partage Philémon GLOBLÉHI,
Petite rectification qui n'a rien à voir avec l'objet de la publication.
Il y a une incohérence entre les deux méthodes. Soit :Supprimer la ligne inutile dans getCommande()
Ou ajouter le .setNbrArticles() manquant pour être cohérent avec getCommandeComplete()