NHibernate HQL отменить выбор оставил присоединиться? - PullRequest
1 голос
/ 03 марта 2011

У меня есть следующая проблема, и я был бы очень признателен за вашу помощь:

Я выполнил всю фильтрацию через HQL, и один из фильтров - это левое внешнее соединение, которое должно быть вторым. Поэтому я думаю, что могу создать фиктивный бизнес-объект, который я хотел бы заполнить (с помощью SP, если это возможно) данными и использовать его в моем левом соединении.

Теперь, как я могу это сделать и при этом иметь всю логику в 1 HQL-запросе?

Полагаю, самая большая проблема для меня - это понимание, как я могу использовать этот BO (фактически не сопоставленный с таблицей и т. Д.) В запросе, где все другие BO сопоставлены с таблицами и т. Д.

Я пытаюсь избежать какой-либо фильтрации в реальном коде C #.

Спасибо!

Пример:

Объект A - сопоставлен с таблицей A

Объект B - сопоставлен с таблицей B

Объект C - сопоставлен с таблицей C

Объект D - не сопоставлен с таблицей - поступает из SQL-запроса или SP

HQL:

от А ПБО

внутреннее соединение B.EntityType etype

внутреннее соединение C.EntityAddressList eadr

левое соединение D.Level lvl

1 Ответ

1 голос
/ 03 марта 2011

Вы не можете присоединиться к произвольному SQL в HQL.Поэтому я не думаю, что вы пытаетесь сделать это возможно.Скорее всего, вам придется либо отобразить D, либо написать запрос на SQL с помощью Session.CreateSQLQuery ().Вы все еще можете указать любые объекты, которые возвращаются.Смотрите эту статью для справки.http://www.nhforge.org/doc/nh/en/index.html#d0e10274

...