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 javax.sql.DataSource;
20
21 import org.springframework.batch.item.database.PagingQueryProvider;
22 import org.springframework.dao.InvalidDataAccessResourceUsageException;
23 import org.springframework.jdbc.support.JdbcUtils;
24
25
26
27
28
29
30
31
32
33
34
35
36
37 public class DerbyPagingQueryProvider extends SqlWindowingPagingQueryProvider {
38
39 private String version;
40
41 @Override
42 public void init(DataSource dataSource) throws Exception {
43 super.init(dataSource);
44 version = JdbcUtils.extractDatabaseMetaData(dataSource, "getDatabaseProductVersion").toString();
45 if ("10.4.1.3".compareTo(version) > 0) {
46 throw new InvalidDataAccessResourceUsageException("Apache Derby version " + version + " is not supported by this class, Only version 10.4.1.3 or later is supported");
47 }
48 }
49
50 @Override
51 protected String getOrderedQueryAlias() {
52 return "TMP_ORDERED";
53 }
54
55 @Override
56 protected String getOverClause() {
57 return "";
58 }
59
60 @Override
61 protected String getOverSubstituteClauseStart() {
62 return " FROM (SELECT " + getSelectClause();
63 }
64
65 @Override
66 protected String getOverSubstituteClauseEnd() {
67 return " ) AS " + getOrderedQueryAlias();
68 }
69
70 }