如何在spring 5.0.1中禁用Spring Batch metaData

0dxa2lsx  于 2023-05-17  发布在  Spring
关注(0)|答案(1)|浏览(151)

我谷歌了很多,并试图按照这个文件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”
如果有任何代码参考或教程,请建议。

qyyhg6bp

qyyhg6bp1#

你不能“禁用”元数据。一个Job总是需要一个JobRepository来报告它的元数据(除非你自己实现Job接口,如果你决定使用Spring Batch,这不是你的首要目标)。
现在从v5开始,Spring Batch只提供JobRepository的基于JDBC的实现。内存中基于Map的实现已删除。因此,您必须使用JDBC实现(这是默认的,需要JDBC数据源),或者自己提供JobRepository的自定义实现。
在使用默认的基于JDBC的JobRepository的情况下,数据源可以是内存中的数据源(如H2、HSQLDB等)。

相关问题