Quelle est la meilleure façon de sélectionner une liste (distincte) d'entités parentes ayant une collection enfant contenant des correspondances pour TOUTES les entrées d'une liste de paramètres d'enfants?Comment faire correspondre tous les enfants utilisant hql
je joue la « toute » version de ma recherche comme ceci:
select p.Id, p.Name from parent p
where exists(from p.Children c where c in (:childList))
Cependant, je suis un peu perplexe sur la meilleure façon d'exécuter la version « tout » de cette recherche. Actuellement, je crée hql à la volée pour chaque enfant que je suis intéressé à faire correspondre; quelque chose comme ceci:
select p.Id, p.Name from parent p
where :child1 in elements(p.Children)
and :child2 in elements(p.Children)
-- etc...
Je ne peux pas m'empêcher de penser qu'il y a une meilleure façon de le faire; Est-ce que quelqu'un peut-il me montrer la bonne direction?
Pour référence, j'utilise une question intéressante NHibernate 2.1.2
Cela semble essentiellement comme la division relationnelle, mais avec des paramètres au lieu d'une table. Voir http://www.simple-talk.com/sql/t-sql-programming/divided-we-stand-the-sql-of-relational-division/ –
@Mauricio: intéressant, je n'ai pas entendu parler de cette terminologie avant, merci pour la référence. – DanP