(N) Hibernate Auto-Join - PullRequest
       20

(N) Hibernate Auto-Join

1 голос
/ 23 августа 2008

Я занимаюсь разработкой веб-приложения с использованием NHibernate. Можете ли вы сказать мне, как написать запрос NHibernate для следующего запроса SQL:

SELECT v1.Id
FROM VIEW v1
LEFT JOIN VIEW v2 ON v1.SourceView = v2.Id
ORDER BY v1.Position

В основном это автоматическое объединение, но я не знаю, как написать это в Nhibernate. Допустим, имена свойств совпадают с именами столбцов таблицы.

1 Ответ

1 голос
/ 25 августа 2008

Вы можете просто выполнить выбор на исходной сущности и установить связь между двумя объектами "lazy = false". Пока сущности отображаются, оба будут возвращены, и вы не получите lazyloadingexception при попытке получить доступ к объекту.

Если вы не хотите отображать «lazy = false», вы также можете перебрать результаты и выполнить какую-либо операцию (например, запросить, является ли он нулевым; if (v1.AssocatedObject == null) {} ), чтобы убедиться, что данные загружены во время открытого сеанса.

Обновление:

Я думаю, что на самом деле лучше, чем в NHibernateUtil.Initialise (), который может инициализировать коллекцию без необходимости проходить через нее.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...