1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package org.springframework.batch.item.database.support;
18
19 import org.springframework.util.StringUtils;
20
21
22
23
24
25
26
27
28
29
30 public class SqlServerPagingQueryProvider extends SqlWindowingPagingQueryProvider {
31
32 @Override
33 public String generateFirstPageQuery(int pageSize) {
34 return SqlPagingQueryUtils.generateTopSqlQuery(this, false, buildTopClause(pageSize));
35 }
36
37 @Override
38 public String generateRemainingPagesQuery(int pageSize) {
39 if(StringUtils.hasText(getGroupClause())) {
40 return SqlPagingQueryUtils.generateGroupedTopSqlQuery(this, true, buildTopClause(pageSize));
41 }
42 else {
43 return SqlPagingQueryUtils.generateTopSqlQuery(this, true, buildTopClause(pageSize));
44 }
45 }
46
47 @Override
48 protected Object getSubQueryAlias() {
49 return "AS TMP_SUB ";
50 }
51
52 private String buildTopClause(int pageSize) {
53 return new StringBuilder().append("TOP ").append(pageSize).toString();
54 }
55 }