Bonjour,
Je vais prendre l'exemple d'une table 'CAT' liée à une table 'KITTEN' (une relation 1 à n).
Dans la classe Cat, j'ai la méthode getKitten() qui permet de récupérer une collection de Kitten.
J'ai dans mon fichier de configuration XML :
Code:
<set
name="utilGroupes"
[b]lazy="false"[/b]
inverse="true"
>
<key>
<column name="CAT_R" />
</key>
<one-to-many
class="Kitten"
/>
</set>
Mon interrogation est celle-ci : si je veux récupérer la liste de tous les chats (supposons qu'il y en a 1000), je vais avoir une requête SQL comme ça :
select * from CAT
et 1000 requêtes de ce style :
select * from KITTEN where CAT_R = ?
1001 requêtes, c'est énorme alors qu'en SQL natif j'aurais fait simple :
select * from CAT as cat, KITTEN as kitten where kitten.CAT_R = cat.CAT.ID
et le trafic réseau et le nombre de connections à la BD en est considérablement allégé
Comment parvenir à résoudre ce problème? Y a t'il une solution?
PS : j'ai bien essayé de faire en HQL :
select cat from CAT as cat left join cat.kitten as kitten
mais ça ne fonctionne pas comme espéré
Merci pour vos éclaircissements