NHibernate много 2 много запросов, возвращая все из одной стороны и ее потомков - PullRequest
1 голос
/ 02 мая 2011

Семья и родители - это отношения м: м.

Прямо сейчас у меня есть этот запрос:

    public Family GetFamilyByParentId(long parentId)
    {
        queryString = @"select f
                        from Family f
                        join fetch f.Parents p
                        join fetch p.Person per
                        where p.Id = :id";

        return Session.CreateQuery(queryString)
                    .SetInt64("id", parentId)
                    .UniqueResult<Family>();
    }

Это отлично работает, получает семью по одному из родительских идентификаторов другой стороны. Проблема в том, что этот запрос загружает только одного родителя. Мне нужно это, чтобы вернуть всех родителей Семьи.

Мне нужно использовать какой-то тип подзапроса для этого права?

1 Ответ

2 голосов
/ 02 мая 2011
select f
from Family f
join fetch f.Parents p
join fetch p.Person per
where f.Id IN (select sub.Id 
            from Family sub join sub.Parents subP join subP.Person subPer 
            where subPer.Id = :id)

Я думаю, что загрузят все родители

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...