2013-10-30 61 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支持抵消,但另外兩個做