Sql server SQL server旧版本的QueryDSL分页结果(限制/偏移)

Sql server SQL server旧版本的QueryDSL分页结果(限制/偏移),sql-server,pagination,querydsl,Sql Server,Pagination,Querydsl,如何在旧版本的MS SQL Server中使用QueryDSL对查询结果进行分页?对于Oracle和SQL Server 2012+我可以这样做: query.offset(startIndex).limit(size); 但是,这在旧版本的SQL server中不起作用,因为不支持偏移量。我知道需要加密的SQL代码如下: SELECT * FROM ( SELECT ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *

如何在旧版本的MS SQL Server中使用QueryDSL对查询结果进行分页?对于Oracle和SQL Server 2012+我可以这样做:

query.offset(startIndex).limit(size);
但是,这在旧版本的SQL server中不起作用,因为不支持偏移量。我知道需要加密的SQL代码如下:

SELECT  *
FROM    ( SELECT    ROW_NUMBER() OVER ( ORDER BY OrderDate ) AS RowNum, *
          FROM      Orders
          WHERE     OrderDate >= '1980-01-01'
        ) AS RowConstrainedResult
WHERE   RowNum >= 1
    AND RowNum < 20
ORDER BY RowNum

在QueryDSL中执行此操作的最佳方法是什么?

QueryDSL提供了三种不同的SQLServer方言

2005年以前版本的SQLServer模板 SQLServer2005和2008的SQLServerTemplates2005 SQL Server 2012的SQLServerTemplate2012 SQLServerTemplates不支持偏移量,但其他两个则支持