ВЫБОР NHibernate HQL TOP в запросе sub

Существует ли способ использовать SetMaxResult () на запросе sub? Я пишу запрос для возврата всех объектов порядка, принадлежащих новому порядку. Таким образом, я должен ограничить количество записей на запросе sub.

Эквивалентный sql смотрит что-то как:

SELECT i.*
FROM tbl_Orders o
JOIN tbl_OrderItems i on i.OrderId = o.Id
WHERE
o.Id in (SELECT TOP 1 o.Id FROM tbl_Orders o orderby o.Date desc)

Я использую hql конкретно, потому что API критериев не позволяет Вам проект другой объект области (Запросы Im на заказах, но хочет возвратить объекты порядка),

Я знаю, что hql не принимает "ИЗБРАННЫЙ TOP", но если я буду использовать SetMaxResult (), то он будет относиться к внешнему запросу, не подзапросу.

Какие-либо идеи?

5
задан Andy 12 January 2010 в 11:26
поделиться

1 ответ

Просто запросите ордера (и используйте SetMaxResult) и сделайте "fetch join", чтобы убедиться, что все элементы ордера для выбранных ордеров загружены немедленно. По возвращаемым ордерам вы можете получить доступ к элементам ордера без этого, в результате чего в базу данных будет отправлен новый SQL-оператор.

3
ответ дан 14 December 2019 в 04:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: