2010-11-12 4 views
1

je l'hql suivante:Nhibernate gauche se joindre à « avec » toujours en tirant en arrière tous les objets enfants

Select q FROM GeneralQuestion q 
Left Join q.QuestionResponses as qr with qr.ContactUid = :contactuid 
WHERE q.ParentUid = :audituid 

Il est évident que GeneralQuestion contient une collection d'objets QuestionResponse. J'ai utilisé le mot-clé with dont je pensais qu'il limiterait les objets QuestionResponse renvoyés aux seuls objets QuestionRespone avec ce contactuid spécifique.

Le problème est que chaque question GeneralQuestion contient toutes les questionsRequonses.

Existe-t-il un moyen de limiter les objets QuestionResponse retournés à être seulement de ce contactuid?

Je pensais que c'était tout le point de avec et je suis maintenant confus.

Répondre

0

Si vous regardez le SQL exécuté, il récupère probablement uniquement les enregistrements filtrés lors de l'interrogation, puis recharge paresseusement la collection lors de son utilisation.

Cela a du sens, car NH doit suivre leur état. Ce que vous devez faire est de récupérer des instances QuestionResponse directement dans votre liste de sélection, et ce sera votre "collection filtrée"

Questions connexes