diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java index 9ec0a9e2d8..6ba4a95438 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobExecutionDao.java @@ -74,6 +74,7 @@ * @author Dimitrios Liapis * @author Philippe Marschall * @author Jinwoo Bae + * @author Yanming Zhou */ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements JobExecutionDao, InitializingBean { @@ -102,24 +103,18 @@ SELECT COUNT(*) WHERE JOB_EXECUTION_ID = ? AND VERSION = ? """; - private static final String FIND_JOB_EXECUTIONS = """ + private static final String GET_JOB_EXECUTIONS = """ SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION FROM %PREFIX%JOB_EXECUTION - WHERE JOB_INSTANCE_ID = ? - ORDER BY JOB_EXECUTION_ID DESC """; - private static final String GET_LAST_EXECUTION = """ - SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION - FROM %PREFIX%JOB_EXECUTION E - WHERE JOB_INSTANCE_ID = ? AND JOB_EXECUTION_ID IN (SELECT MAX(JOB_EXECUTION_ID) FROM %PREFIX%JOB_EXECUTION E2 WHERE E2.JOB_INSTANCE_ID = ?) - """; + private static final String FIND_JOB_EXECUTIONS = GET_JOB_EXECUTIONS + + " WHERE JOB_INSTANCE_ID = ? ORDER BY JOB_EXECUTION_ID DESC"; - private static final String GET_EXECUTION_BY_ID = """ - SELECT JOB_EXECUTION_ID, START_TIME, END_TIME, STATUS, EXIT_CODE, EXIT_MESSAGE, CREATE_TIME, LAST_UPDATED, VERSION - FROM %PREFIX%JOB_EXECUTION - WHERE JOB_EXECUTION_ID = ? - """; + private static final String GET_LAST_EXECUTION = GET_JOB_EXECUTIONS + + " WHERE JOB_INSTANCE_ID = ? AND JOB_EXECUTION_ID IN (SELECT MAX(JOB_EXECUTION_ID) FROM %PREFIX%JOB_EXECUTION E2 WHERE E2.JOB_INSTANCE_ID = ?)"; + + private static final String GET_EXECUTION_BY_ID = GET_JOB_EXECUTIONS + " WHERE JOB_EXECUTION_ID = ?"; private static final String GET_RUNNING_EXECUTIONS = """ 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 diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java index 27dcc8b7a2..629537e290 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/JdbcJobInstanceDao.java @@ -53,6 +53,7 @@ * @author Will Schipp * @author Mahmoud Ben Hassine * @author Parikshit Dutta + * @author Yanming Zhou */ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements JobInstanceDao, InitializingBean { @@ -71,7 +72,7 @@ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements WHERE JOB_NAME = ? """; - private static final String FIND_JOBS_WITH_KEY = FIND_JOBS_WITH_NAME + " and JOB_KEY = ?"; + private static final String FIND_JOBS_WITH_KEY = FIND_JOBS_WITH_NAME + " AND JOB_KEY = ?"; private static final String COUNT_JOBS_WITH_NAME = """ SELECT COUNT(*) @@ -79,11 +80,8 @@ SELECT COUNT(*) WHERE JOB_NAME = ? """; - private static final String FIND_JOBS_WITH_EMPTY_KEY = """ - SELECT JOB_INSTANCE_ID, JOB_NAME - FROM %PREFIX%JOB_INSTANCE - WHERE JOB_NAME = ? AND (JOB_KEY = ? OR JOB_KEY IS NULL) - """; + private static final String FIND_JOBS_WITH_EMPTY_KEY = FIND_JOBS_WITH_NAME + + " AND (JOB_KEY = ? OR JOB_KEY IS NULL)"; private static final String GET_JOB_FROM_ID = """ SELECT JOB_INSTANCE_ID, JOB_NAME, JOB_KEY, VERSION @@ -103,12 +101,7 @@ SELECT COUNT(*) ORDER BY JOB_NAME """; - private static final String FIND_LAST_JOBS_BY_NAME = """ - SELECT JOB_INSTANCE_ID, JOB_NAME - FROM %PREFIX%JOB_INSTANCE - WHERE JOB_NAME = ? - ORDER BY JOB_INSTANCE_ID DESC - """; + private static final String FIND_LAST_JOBS_BY_NAME = FIND_JOBS_WITH_NAME + " ORDER BY JOB_INSTANCE_ID DESC"; private static final String FIND_LAST_JOB_INSTANCE_BY_JOB_NAME = """ SELECT JOB_INSTANCE_ID, JOB_NAME