家庭和父母是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>();
}
这很好用,通过另一方的parentIds给我一个家庭。问题是此查询仅加载单个父级。我需要它来归还所有家庭的父母。
我需要使用某种类型的子查询吗?
答案 0 :(得分:2)
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)
我认为这将加载所有父母