Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| eadl:bloc3:dev_av:td2 [2025/11/09 16:27] – jcheron | eadl:bloc3:dev_av:td2 [2025/11/09 16:30] (Version actuelle) – jcheron | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| - | Voici la séance | + | ====== |
| - | # ====== | + | Séance |
| - | **Séance 2 (4h)** | + | Contexte : fil rouge e-commerce |
| - | **Contexte :** fil rouge e-commerce | + | ===== Objectifs pédagogiques ===== |
| - | + | ||
| - | ## ===== Objectifs pédagogiques ===== | + | |
| * Maîtriser les associations bidirectionnelles et leurs pièges | * Maîtriser les associations bidirectionnelles et leurs pièges | ||
| Ligne 14: | Ligne 12: | ||
| * Optimiser les requêtes avec fetch strategies et projections | * Optimiser les requêtes avec fetch strategies et projections | ||
| - | ## ===== Partie 1 : Associations JPA (1h30) ===== | + | ===== Partie 1 : Associations JPA (1h30) ===== |
| - | ### ==== 1.1 Implémentation des associations manquantes ==== | + | ==== 1.1 Implémentation des associations manquantes ==== |
| <WRAP round bloc todo> | <WRAP round bloc todo> | ||
| Ligne 32: | Ligne 30: | ||
| * Lazy vs Eager loading | * Lazy vs Eager loading | ||
| - | ### ==== 1.2 Exercice pratique : Orders & OrderItems ==== | + | ==== 1.2 Exercice pratique : Orders & OrderItems ==== |
| <sxh kotlin> | <sxh kotlin> | ||
| Ligne 204: | Ligne 202: | ||
| </ | </ | ||
| - | ### ==== Chargement minimaliste ==== | + | ==== Chargement minimaliste ==== |
| Pour recréer à moindre coût une relation (sans charger complètement l' | Pour recréer à moindre coût une relation (sans charger complètement l' | ||
| Ligne 211: | Ligne 209: | ||
| </ | </ | ||
| - | ## ===== Partie 2 : Problèmes de performance (1h30) ===== | + | ===== Partie 2 : Problèmes de performance (1h30) ===== |
| - | ### ==== 2.1 Diagnostic du problème N+1 ==== | + | ==== 2.1 Diagnostic du problème N+1 ==== |
| <WRAP round bloc important> | <WRAP round bloc important> | ||
| Ligne 228: | Ligne 226: | ||
| </ | </ | ||
| - | ### ==== 2.2 Solutions d' | + | ==== 2.2 Solutions d' |
| **À implémenter et comparer :** | **À implémenter et comparer :** | ||
| Ligne 292: | Ligne 290: | ||
| </ | </ | ||
| - | ## ===== Partie 3 : Héritage JPA (1h) ===== | + | ===== Partie 3 : Héritage JPA (1h) ===== |
| - | ### ==== 3.1 Cas d' | + | ==== 3.1 Cas d' |
| <WRAP round bloc idea> | <WRAP round bloc idea> | ||
| Ligne 307: | Ligne 305: | ||
| </ | </ | ||
| - | ### ==== 3.2 Implémentation avec stratégies d' | + | ==== 3.2 Implémentation avec stratégies d' |
| **À explorer (au choix ou comparaison) :** | **À explorer (au choix ou comparaison) :** | ||
| Ligne 414: | Ligne 412: | ||
| * Avantages/ | * Avantages/ | ||
| - | ### ==== 3.3 Requêtes polymorphiques ==== | + | ==== 3.3 Requêtes polymorphiques ==== |
| <sxh kotlin> | <sxh kotlin> | ||
| Ligne 448: | Ligne 446: | ||
| </ | </ | ||
| - | ## ===== Partie 4 : Hypersistence Utils - Outils avancés (30min-1h) ===== | + | ===== Partie 4 : Hypersistence Utils - Outils avancés (30min-1h) ===== |
| - | ### ==== 4.1 Introduction à Hypersistence Utils ==== | + | ==== 4.1 Introduction à Hypersistence Utils ==== |
| <WRAP round bloc info> | <WRAP round bloc info> | ||
| Ligne 470: | Ligne 468: | ||
| </ | </ | ||
| - | ### ==== 4.2 Détection automatique des problèmes N+1 ==== | + | ==== 4.2 Détection automatique des problèmes N+1 ==== |
| <WRAP round bloc important> | <WRAP round bloc important> | ||
| Ligne 498: | Ligne 496: | ||
| * Corriger les problèmes détectés | * Corriger les problèmes détectés | ||
| - | ### ==== 4.3 Types JSON natifs ==== | + | ==== 4.3 Types JSON natifs ==== |
| <WRAP round bloc todo> | <WRAP round bloc todo> | ||
| Ligne 571: | Ligne 569: | ||
| * Filtrer les produits par attribut : '' | * Filtrer les produits par attribut : '' | ||
| - | ### ==== 4.4 Optimisation des identifiants avec Tsid ==== | + | ==== 4.4 Optimisation des identifiants avec Tsid ==== |
| <WRAP round bloc info> | <WRAP round bloc info> | ||
| Ligne 689: | Ligne 687: | ||
| < | < | ||
| - | ### ==== 4.5 Monitoring des requêtes en temps réel ==== | + | ==== 4.5 Monitoring des requêtes en temps réel ==== |
| === DataSourceProxyBeanPostProcessor === | === DataSourceProxyBeanPostProcessor === | ||
| Ligne 738: | Ligne 736: | ||
| </ | </ | ||
| - | ### ==== 4.6 Exercice intégratif ==== | + | ==== 4.6 Exercice intégratif ==== |
| <WRAP round bloc todo> | <WRAP round bloc todo> | ||
| Ligne 787: | Ligne 785: | ||
| </ | </ | ||
| - | ## ===== Configuration complète ===== | + | ===== Configuration complète ===== |
| <sxh bash> | <sxh bash> | ||
| Ligne 819: | Ligne 817: | ||
| </ | </ | ||
| - | ## ===== Livrables attendus ===== | + | ===== Livrables attendus ===== |
| <WRAP round bloc todo> | <WRAP round bloc todo> | ||
| Ligne 839: | Ligne 837: | ||
| </ | </ | ||
| - | ## ===== Ressources ===== | + | ===== Ressources ===== |
| * [[https:// | * [[https:// | ||