Многостоловый запрос NHibernate - PullRequest
0 голосов
/ 05 июля 2011

У меня есть граф объектов, который выглядит так:

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, где они содержат D по цепочке с определенным идентификатором?

Я использую NH3, поэтому могу использовать любой из техников запросов. Я пробовал несколько разных подходов, но в каждом случае, казалось бы, зашел в тупик. У меня есть решение для работы с коллекциями памяти - но, очевидно, это не идеально, я хочу, чтобы работа выполнялась на сервере БД.

1 Ответ

3 голосов
/ 05 июля 2011
select distinct a from A a
inner join a.bees b
inner join b.c c
where c.d.id = :theSearchDId

Это означает, что все ассоциации являются двунаправленными ассоциациями, а не несвязанными ассоциациями (т. Е. A.bees является обратной ассоциацией Ba и т. Д.).

...