Skip to content

Commit 2ec3a10

Browse files
committed
Reuse existing SQL where feasible
Signed-off-by: Yanming Zhou <[email protected]>
1 parent 2bd5b84 commit 2ec3a10

File tree

2 files changed

+13
-25
lines changed

2 files changed

+13
-25
lines changed

spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java

+8-13
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@
7474
* @author Dimitrios Liapis
7575
* @author Philippe Marschall
7676
* @author Jinwoo Bae
77+
* @author Yanming Zhou
7778
*/
7879
public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements JobExecutionDao, InitializingBean {
7980

@@ -102,24 +103,18 @@ SELECT COUNT(*)
102103
WHERE JOB_EXECUTION_ID = ? AND VERSION = ?
103104
""";
104105

105-
private static final String FIND_JOB_EXECUTIONS = """
106+
private static final String GET_JOB_EXECUTIONS = """
106107
SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION
107108
FROM %PREFIX%JOB_EXECUTION
108-
WHERE JOB_INSTANCE_ID = ?
109-
ORDER BY JOB_EXECUTION_ID DESC
110109
""";
111110

112-
private static final String GET_LAST_EXECUTION = """
113-
SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION
114-
FROM %PREFIX%JOB_EXECUTION E
115-
WHERE JOB_INSTANCE_ID = ? AND JOB_EXECUTION_ID IN (SELECT MAX(JOB_EXECUTION_ID) FROM %PREFIX%JOB_EXECUTION E2 WHERE E2.JOB_INSTANCE_ID = ?)
116-
""";
111+
private static final String FIND_JOB_EXECUTIONS = GET_JOB_EXECUTIONS
112+
+ " WHERE JOB_INSTANCE_ID = ? ORDER BY JOB_EXECUTION_ID DESC";
117113

118-
private static final String GET_EXECUTION_BY_ID = """
119-
SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION
120-
FROM %PREFIX%JOB_EXECUTION
121-
WHERE JOB_EXECUTION_ID = ?
122-
""";
114+
private static final String GET_LAST_EXECUTION = GET_JOB_EXECUTIONS
115+
+ " WHERE JOB_INSTANCE_ID = ? AND JOB_EXECUTION_ID IN (SELECT MAX(JOB_EXECUTION_ID) FROM %PREFIX%JOB_EXECUTION E2 WHERE E2.JOB_INSTANCE_ID = ?)";
116+
117+
private static final String GET_EXECUTION_BY_ID = GET_JOB_EXECUTIONS + " WHERE JOB_EXECUTION_ID = ?";
123118

124119
private static final String GET_RUNNING_EXECUTIONS = """
125120
SELECT E.JOB_EXECUTION_ID, E.START_TIME, E.END_TIME, E.STATUS, E.EXIT_CODE, E.EXIT_MESSAGE, E.CREATE_TIME, E.LAST_UPDATED, E.VERSION, E.JOB_INSTANCE_ID

spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java

+5-12
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@
5353
* @author Will Schipp
5454
* @author Mahmoud Ben Hassine
5555
* @author Parikshit Dutta
56+
* @author Yanming Zhou
5657
*/
5758
public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements JobInstanceDao, InitializingBean {
5859

@@ -71,19 +72,16 @@ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements
7172
WHERE JOB_NAME = ?
7273
""";
7374

74-
private static final String FIND_JOBS_WITH_KEY = FIND_JOBS_WITH_NAME + " and JOB_KEY = ?";
75+
private static final String FIND_JOBS_WITH_KEY = FIND_JOBS_WITH_NAME + " AND JOB_KEY = ?";
7576

7677
private static final String COUNT_JOBS_WITH_NAME = """
7778
SELECT COUNT(*)
7879
FROM %PREFIX%JOB_INSTANCE
7980
WHERE JOB_NAME = ?
8081
""";
8182

82-
private static final String FIND_JOBS_WITH_EMPTY_KEY = """
83-
SELECT JOB_INSTANCE_ID, JOB_NAME
84-
FROM %PREFIX%JOB_INSTANCE
85-
WHERE JOB_NAME = ? AND (JOB_KEY = ? OR JOB_KEY IS NULL)
86-
""";
83+
private static final String FIND_JOBS_WITH_EMPTY_KEY = FIND_JOBS_WITH_NAME
84+
+ " AND (JOB_KEY = ? OR JOB_KEY IS NULL)";
8785

8886
private static final String GET_JOB_FROM_ID = """
8987
SELECT JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION
@@ -103,12 +101,7 @@ SELECT COUNT(*)
103101
ORDER BY JOB_NAME
104102
""";
105103

106-
private static final String FIND_LAST_JOBS_BY_NAME = """
107-
SELECT JOB_INSTANCE_ID, JOB_NAME
108-
FROM %PREFIX%JOB_INSTANCE
109-
WHERE JOB_NAME = ?
110-
ORDER BY JOB_INSTANCE_ID DESC
111-
""";
104+
private static final String FIND_LAST_JOBS_BY_NAME = FIND_JOBS_WITH_NAME + " ORDER BY JOB_INSTANCE_ID DESC";
112105

113106
private static final String FIND_LAST_JOB_INSTANCE_BY_JOB_NAME = """
114107
SELECT JOB_INSTANCE_ID, JOB_NAME

0 commit comments

Comments
 (0)