diff --git a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobExecutionDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobExecutionDao.java index 3ca18a19d8..3ca7b810e1 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobExecutionDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobExecutionDao.java @@ -77,6 +77,7 @@ * @author Dimitrios Liapis * @author Philippe Marschall * @author Jinwoo Bae + * @author Yanming Zhou */ public class JdbcJobExecutionDao extends AbstractJdbcBatchMetadataDao implements JobExecutionDao, InitializingBean { @@ -105,24 +106,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/jdbc/JdbcJobInstanceDao.java b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobInstanceDao.java index bfff1d13b2..b546bc0083 100644 --- a/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobInstanceDao.java +++ b/spring-batch-core/src/main/java/org/springframework/batch/core/repository/dao/jdbc/JdbcJobInstanceDao.java @@ -55,6 +55,7 @@ * @author Will Schipp * @author Mahmoud Ben Hassine * @author Parikshit Dutta + * @author Yanming Zhou */ public class JdbcJobInstanceDao extends AbstractJdbcBatchMetadataDao implements JobInstanceDao, InitializingBean { @@ -73,7 +74,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(*) @@ -81,11 +82,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