2009-02-02 8 views
1

Err, je ne peux pas penser à un meilleur titre. Fondamentalement, j'ai une classe appelée MarketGroups, cela a une collection enfants Markgroups qui a une collection de MarketTypes et MarketTypes a une collection de MetaGroups.Filtrer la collection enfant en utilisant une collection enfant de l'enfant

Je voudrais être en mesure, dans une requête, charger le parent, et renvoyer uniquement Child MarketGroups qui ont MarketTypes avec un MetaGroup spécifique dans sa collection MetaGroup.

Je suis au courant de cette question: Filter child collection returned with Aggregate Root using Nhibernate mais est pas la solution que je cherche, je veux le faire dans le code idéalement comme une requête, mais je ne me dérangerait pas le diviser.

:)

Répondre

0

À moins que vous restreignez les enfants qui sont chargés par défaut (en utilisant la méthode lié à) vous devrez charger le Parent dans une requête et les enfants dans un autre. SANS AUCUNE possibilité d'interroger un objet et de ne charger que certains enfants.

Vous pouvez toujours utiliser MultiQuery pour les soumettre en même temps.

HQL quelque chose comme (cela peut manquer la marque un peu):

  select 
       mt 
      from 
       MarketGroup mg 
      inner join 
       mg.MarketTypes mt 
      inner join 
       mt.MetaGroups mg 
      where 
       mg.ID=12312 and mg.ID=3214123 
+0

je me suis retrouvé avec un multicritera, donc je vais prendre cela comme la réponse :) –

Questions connexes