我正在根据row_number进行排序和返回X行的查询() 我正在使用NHibernate和MSSQL,并试图使用CreateSQLQuery获得分页工作,我有这个查询:用于分页到HQL/ICriteria的NHibernate SQL查询
select s.*
from(
select distinct release.[stop], survey.SurveyId, survey.Created, survey.CopyOfId, survey.DesignTemplateId, survey.UserId, survey.Template, [Row] = Row_Number() over (order by survey.[SurveyId])
from Survey as survey
inner join Release as release on release.SurveyId = survey.SurveyId
group by survey.SurveyId
, survey.Created
, survey.CopyOfId
, survey.DesignTemplateId
, survey.UserId
, survey.Template
, release.[stop]
) as s
where s.[Row] >= 0 and s.[Row] <= 20
order by s.[stop]
没有人知道如何使用HQL或ICriteria(甚至更好),而不是普通的SQL来得到这个工作吗?原因是我想要一个兼容SQLite和MS SQL Server 2005的查询,这样我就可以使用.SetMaxResult()或.SetFirstResult()
在此先感谢!
你也可以在同一个使用多目标进行第二次查询总数量往返,以获得总页数。 – jishi 2010-06-30 12:30:12
感谢您的回答,但我想知道这个查询在HQL或ICriteria中的样子。 – dbn2k 2010-06-30 12:48:27
同样,您也可以在查询对象上调用这些方法。 – 2010-06-30 13:57:04