将分页(使用SetFirstResult
和SetMaxResults
)应用于ActiveRecord
SqlQuery
时,使用nHibernate 2.1.1 GA和ActiveRecord 2.0.1生成以下sql:
SELECT
TOP 40
FROM
(, ROW_NUMBER() OVER(ORDER BY account.Name, account.State) as __hibernate_sort_row
select account.Name
<rest of query>
) as query
WHERE query.__hibernate_sort_row > 40
ORDER BY query.__hibernate_sort_row
此错误并且不会在sql中运行...而应该是
SELECT TOP 40 *
FROM (
SELECT
ROW_NUMBER() OVER (ORDER BY account.Name, account.State) as __hibernate_sort_row
,select account.Name
<rest of query>
) as query
WHERE query.__hibernate_sort_row > 40
ORDER BY query.__hibernate_sort_row
奇怪的是:
HqlQuery
,只有SqlQuery
受影响。这适用于MS2005Dialect和MS2008Dialect ......
有人知道我的愚蠢问题吗?
答案 0 :(得分:0)
我发现这个页面Possible SQL Server bug与标题相反,表明我需要在我的sql中编写它。没有花费半天的时间尝试就没问题。
任何人都可以确认这是绝对的情况吗?
答案 1 :(得分:0)
我用它来解决它。这是link。对你有帮助。