如何在旧版本的MS SQL Server中使用QueryDSL对查询结果进行分页?对于Oracle和SQL Server 2012+,我可以这样做:
query.offset(startIndex).limit(size);
但是,这在旧版本的SQL Server中不起作用,因为不支持偏移。我知道需要gerenated的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中执行此操作的最佳方法是什么?
答案 0 :(得分:0)
Querydsl提供三种不同的SQLServer方言
SQLServerTemplates
SQLServerTemplates2005
适用于SQL Server 2005和2008 SQLServerTemplates2012
for SQL Server 2012 SQLServerTemplates
不支持偏移,但其他两个支持