Une façon d'éviter le problème des N + 1 select est d'utiliser un select avec un "join fetch" à la place d'un simple select dans la méthode qui récupère les CompteBancaire.

Relisez le cours pour voir comment lancer un select avec join fetch.

Modifiez votre code, faites et "Clean and Build" et relancez l'application. Vous ne devriez plus avoir qu'un seul select. Vérifiez-le.

Ce select est maintenant un select avec jointure qui récupère en une seule fois les ComptBancaire et les OperationBancaire :

SELECT t1.ID, t1.NOM, t1.SOLDE, t1.VERSION, t0.ID, t0.DATEOPERATION, t0.DESCRIPTION, t0.MONTANT 
FROM OPERATIONBANCAIRE t0, COMPTEBANCAIRE_OPERATIONBANCAIRE t2, COMPTEBANCAIRE t1 
WHERE ((t2.CompteBancaire_ID = t1.ID) AND (t0.ID = t2.operations_ID))

Rappelez-vous que l'association 1-N entre CompteBancaire et OperationBancaire est traduite par une table association COMPTEBANCAIRE_OPERATIONBANCAIRE car l'association est unidirectionnelle et 1 vers N (cas pas étudié en cours) ; sinon cette association aurait été traduite plus simplement par une clé étrangère dans la table OPERATIONBANCAIRE (cas étudié en cours).

Si la banque a 100 000 comptes, la différence de temps d'exécution entre 1 et 100 001 selects peut être très importante.

Comme il est dit en cours, si une de vos applications qui utilise une base de données relationnelle a des problèmes de performance, pensez à vérifier qu'elle n'a pas ce problème des N + 1 selects.