#c# #nhibernate
#c# #nhibernate
Вопрос:
Семья и родители — это отношения m: m.
Прямо сейчас у меня есть этот запрос:
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. Итак, эта новая функция, которая возвращала бы список родителей, принимала бы ParentID?
2. Это вернет список семейства
Ответ №1:
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)
Я думаю, что это загрузит всех родителей