Mode de récupération des opérations bancaires

Il est rare d'utiliser le mode de récupération EAGER pour une association 1-N comme il est fait ici pour l'association entre CompteBancaire et OperationBancaire.

Dnas certains cas la récupération des opérations associées à un compte est facilitée par le mode de récupération EAGER. Cependant, si on veut seulement utiliser les noms des possesseurs des comptes, il est inutilement coûteux de récupérer pour cela toutes les opérations bancaires effectuées sur les comptes.

En exercice optionnel, quand vous aurez terminé le TP, vous pourrez enlever ce mode de récupération et garder le mode par défaut (LAZY pour une association 1-N). Même si vous ne faites pas cet exercice, lisez ce qui suit et essayez de comprendre.

Dans cet exercice, pour afficher la liste des comptes quand l'utilisateur clique sur un lien vers les opérations bancaires dans la page customerList.xhtml, il faudra alors

Je vous ai donné l'ensemble des solutions possibles lorsqu'on veut récupérer des entités associées (EAGER, join fetch, select explicite, select implicite). Chaque cas est particulier et doit être analysé et vérifié avec des tests.

Si les performances sont mauvaises, pensez au fameux problème des "N + 1 selects", étudié en cours, qui peut arriver à chaque fois que vous récupérez des données dans une base de données, même si vous n'utilisez pas JPA.