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
20
21
22
23
24
25 public class H2PagingQueryProvider extends AbstractSqlPagingQueryProvider {
26
27 @Override
28 public String generateFirstPageQuery(int pageSize) {
29 return SqlPagingQueryUtils.generateTopSqlQuery(this, false, buildTopClause(pageSize));
30 }
31
32 @Override
33 public String generateRemainingPagesQuery(int pageSize) {
34 return SqlPagingQueryUtils.generateTopSqlQuery(this, true, buildTopClause(pageSize));
35 }
36
37 private String buildTopClause(int pageSize) {
38 return new StringBuilder().append("TOP ").append(pageSize).toString();
39 }
40
41 @Override
42 public String generateJumpToItemQuery(int itemIndex, int pageSize) {
43 int page = itemIndex / pageSize;
44 int offset = (page * pageSize) - 1;
45 offset = offset<0 ? 0 : offset;
46
47 String topClause = new StringBuilder().append("LIMIT ").append(offset).append(" 1").toString();
48 return SqlPagingQueryUtils.generateTopJumpToQuery(this, topClause);
49 }
50
51 }