我谷歌了很多,并试图按照这个文件https://docs.spring.io/spring-batch/docs/5.0.1/reference/html/whatsnew.html#whatsNew
但无法找到禁用Spring批处理 meta数据的方法。
即使我尝试不使用@EnableBatchProcessing,但仍然得到这个错误:
for servlet [dispatcherServlet] in context with path [] throughed exception [请求处理失败:org.springframework.jdbc.BadSqlGrammarException:PreparedStatementCallback; SQL语法错误[SELECT JOB_EXECUTION_ID,PARAMETER_NAME,PARAMETER_TYPE,PARAMETER_VALUE,IDENTIFYING from BATCH_JOB_EXECUTION_PARAMS where JOB_EXECUTION_ID =?]],其根本原因为java.sql.SQLSyntaxErrorException:“字段列表”中的未知列“PARAMETER_NAME”
如果有任何代码参考或教程,请建议。
1条答案
按热度按时间qyyhg6bp1#
你不能“禁用”元数据。一个
Job
总是需要一个JobRepository
来报告它的元数据(除非你自己实现Job
接口,如果你决定使用Spring Batch,这不是你的首要目标)。现在从v5开始,Spring Batch只提供
JobRepository
的基于JDBC的实现。内存中基于Map的实现已删除。因此,您必须使用JDBC实现(这是默认的,需要JDBC数据源),或者自己提供JobRepository
的自定义实现。在使用默认的基于JDBC的
JobRepository
的情况下,数据源可以是内存中的数据源(如H2、HSQLDB等)。