Фильтровать дочернюю коллекцию, используя дочернюю коллекцию дочернего - PullRequest
1 голос
/ 02 февраля 2009

Э-э, я не могу придумать лучшего названия. В основном у меня есть класс MarketGroups, у него есть дочерняя коллекция Markgroups, у которой есть коллекция MarketTypes, а у MarketTypes есть коллекция MetaGroups.

Я хотел бы иметь возможность в одном запросе загрузить Parent и вернуть только дочерние MarketGroups, которые имеют MarketTypes с одной определенной MetaGroup в своей коллекции MetaGroup.

Мне известен этот вопрос: Фильтр дочерней коллекции, возвращенный с Aggregate Root с использованием Nhibernate , но не решение, которое я ищу, я хочу сделать это в коде в идеале как один запрос, но я бы не отказался разделить его.

:)

1 Ответ

0 голосов
/ 13 февраля 2009

Если вы не ограничиваете дочерние элементы, которые загружаются по умолчанию (используя метод, с которым вы связаны), вам придется загружать родительский элемент в одном запросе, а дочерние - в другом. AFAIK, нет способа запросить объект и загружены только определенные дочерние элементы.

Вы всегда можете использовать MultiQuery для отправки их одновременно.

HQL что-то вроде (может быть, немного не хватает метки):

            select
                mt
            from 
                MarketGroup mg
            inner join
                mg.MarketTypes mt
            inner join
                mt.MetaGroups mg
            where 
               mg.ID=12312 and mg.ID=3214123
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...