多表NHibernate查询

时间:2011-07-05 18:08:13

标签: nhibernate hql linq-to-nhibernate icriteria queryover

我有一个如下所示的对象图:

class A ()
{
   int id;
   IEnumerable<B> bees;
}

class B()
{
   int id;
   A a;
   C c;
}

class C()
{
   int id;
   D d;
   IEnumerable<B> bees;
}

class D()
{
   int id;
   IEnumerable<C> cees
}

构建查询的合理方法是什么:

会返回A类型的列表,其中包含带有特定ID的链中的D?

我正在使用NH3,因此可以使用任何查询技术。我尝试了几种不同的方法,但在每种情况下都看似死路一条。我有一个在内存集合中使用的解决方案 - 但显然这不太理想,我希望在数据库服务器上完成工作。

1 个答案:

答案 0 :(得分:3)

select distinct a from A a
inner join a.bees b
inner join b.c c
where c.d.id = :theSearchDId

假设所有关联都是双向关联,而不是不相关的关联(即A.bees是B.a等的反向关联)。

相关问题