Использование Order для сортировки результата запроса HQL в NHibernate - CodeHelper

Использование Order для сортировки результата запроса HQL в NHibernate

2

В NHibernate есть класс Order, который применяется для сортировки, когда используются критерии. Выглядит это примерно так:

session
    .CreateCriteria(typeof(Foo))
    .AddOrder(someOrder)
    .List<Foo>();

Вопрос состоит в том, можно ли использовать реализации класса Order если используются не критерии (ICriteria), а запросы HQL. В этом случае код примерно такой:

session
    .CreateQuery(@"select from Foo foo")
    .List<Foo>();

Метод CreateQuery возвращает экземпляр IQuery, в котором нет метода AddOrder.

Новые ответы


2

Точную ссылку дать не смогу, но уверен, что метод AddOrder точно использовать нельзя, ведь HQL подразумевает под собой хибернейтовскую абстракцию над классическим SQL, в котором и так можно указать сортировку. А критерии подразумевают как бы пошаговую генерацию запроса к базе данных.

Fish

Что же тогда делать если:

c одной стороны, нужно выполнить сложный запрос с джойнами, поэтому нельзя использовать критерии;

с другой стороны, нужно сделать сложную сортироваку (не по полю), которая должна использовать нативный, привязанный к определенной СУБД синтаксис SQL.


v1.7.123.556
© 2009—2010 CodeHelper FAQ | О сайте | Обратная связь | История изменений | Статьи
Creative Commons LicenseМатериалы сайта распространяются под лицензией Creative Commons Attribution-Share Alike 3.0 Unported.