古いバージョンの MS SQL Server で QueryDSL を使用してクエリの結果をページ分割するにはどうすればよいですか? Oracle および SQL Server 2012+ の場合、これを行うことができます。
query.offset(startIndex).limit(size);
ただし、オフセットがサポートされていないため、これは古いバージョンの SQL サーバーでは機能しません。生成する必要がある 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 でこれを行う最善の方法は何ですか?