When I did a next page on the UI for job executions, it fails because of BAD SQL syntax. The DB is SQL server.
The inner query needs an alias for this to work properly.
Code:org.springframework.jdbc.BadSqlGrammarException: StatementCallback; bad SQL grammar [SELECT SORT_KEY FROM ( SELECT E.JOB_EXECUTION_ID AS SORT_KEY, ROW_NUMBER() OVER (ORDER BY E.JOB_EXECUTION_ID DESC) AS ROW_NUMBER FROM BATCH_JOB_EXECUTION E, BATCH_JOB_INSTANCE I WHERE E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID) WHERE ROW_NUMBER = 20]; nested exception is java.sql.SQLException: Incorrect syntax near the keyword 'WHERE'. org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:233) org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:72) org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:406) org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:455) org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:463) org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:471) org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:476) org.springframework.jdbc.core.JdbcTemplate.queryForLong(JdbcTemplate.java:480) org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForLong(SimpleJdbcTemplate.java:127) org.springframework.batch.admin.service.JdbcSearchableJobExecutionDao.getJobExecutions(JdbcSearchableJobExecutionDao.java:185) org.springframework.batch.admin.service.SimpleJobService.listJobExecutions(SimpleJobService.java:209) org.springframework.batch.admin.web.JobExecutionController.list(JobExecutionController.java:143) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:731) org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:168) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:385) org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:373) org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552) javax.servlet.http.HttpServlet.service(HttpServlet.java:617) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.springframework.web.filter.HiddenHttpMethodFilter.doFilterInternal(HiddenHttpMethodFilter.java:71) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) org.springframework.web.filter.ShallowEtagHeaderFilter.doFilterInternal(ShallowEtagHeaderFilter.java:57) org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)


Reply With Quote
