Dans vos locaux
Pour ancrer les apprentissages et encourager la dynamique collective.
Mettez en place mapping objet-relationnel, associations et cascades, gestion du contexte de persistance, requêtes JPQL et stratégies de cache pour éliminer les requêtes N+1.
@Entity
class Commande {
@Id @GeneratedValue
Long id;
@OneToMany(mappedBy = "commande", cascade = CascadeType.ALL, fetch = FetchType.LAZY)
List<LigneCommande> lignes = new ArrayList<>();
}
@Query("select c from Commande c join fetch c.lignes where c.client.id = :clientId")
List<Commande> parClient(@Param("clientId") Long clientId);La plupart des problèmes de performance d'une application Java se logent dans la couche de persistance, souvent sans que personne ne le voie avant la mise en charge. Cette formation traite le mapping objet-relationnel avec les annotations JPA (associations, héritage, cascades, embeddables), la gestion fine du contexte de persistance (états des entités, dirty checking, flush) et l'écriture de requêtes JPQL performantes. Une large place est faite à l'optimisation : détection et résolution du problème des requêtes N+1, stratégies de chargement (lazy, eager), fetch joins, et cache de premier et second niveau propres à Hibernate. Chaque exercice s'accompagne d'une mesure du SQL réellement émis par le framework, pour raisonner sur des faits plutôt que des suppositions. Elle s'adresse aux développeurs Java travaillant avec des bases de données relationnelles.
Les objectifs
Mapper objets et tables et optimiser requêtes et transactions avec JPA/Hibernate.
Public visé
Développeurs Java travaillant avec des bases relationnelles.
Prérequis
Maîtrise de Java. Connaissance du langage SQL.
Pour ancrer les apprentissages et encourager la dynamique collective.
Pour allier flexibilité et interactions en temps réel avec le formateur.
Pour favoriser la concentration, les échanges et le confort des apprenants.