2013-10-30 59 views
1

如何在旧版MS SQL Server中使用QueryDSL分页查询的结果?对于Oracle和SQL Server 2012+我可以这样做:旧版SQL Server的QueryDSL分页结果(限制/偏移量)

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

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

  • SQLServerTemplates的SQL Server版本在2005年之前
  • SQLServerTemplates2005对于SQL Server 2005和2008
  • SQLServerTemplates2012为SQL Server 2012

SQLServerTemplates没有按” t支持抵消,但另外两个做