避免在 Spring Batch 5 中创建元数据表

问题描述 投票:0回答:1

如何在 Spring Batch 5(Spring Boot 3)中禁用元数据表的创建。我在日志 org.springframework.jdbc.BadSqlGrammarException:PreparedStatementCallback; 中看到以下异常:错误的 SQL 语法 [SELECT JOB_INSTANCE_ID, JOB_NAME FROM BATCH_JOB_INSTANCE WHERE JOB_NAME = ?作业_KEY = ?]

尝试升级我们的批处理应用程序以使用 Spring Batch 5 (Spring Boot 3),作为其中的一部分,我们进行了所有必要的更改并看到以下错误。我们不想创建元数据表,因为我们不想监视批处理作业。

感谢在这方面的任何帮助。

spring-batch spring-boot-3
1个回答
0
投票

作业存储库的基于 Map 的实现在 v5 中被删除。如果您使用

@EnableBatchProcessing
DefaultBatchConfiguration
,则需要在应用程序上下文中注册一个数据源 bean,该数据源 bean 将由默认的基于 JDBC 的作业存储库使用。数据源可以是内存中的数据源,例如 H2、HSQLDB 等。基于 Map 的存储库的建议替换是使用带有内存数据库的 JDBC 数据源,请参阅:https://github.com/spring -projects/spring-batch/wiki/Spring-Batch-5.0-Migration-Guide#job-repositoryexplorer-configuration-updates

否则,您必须提供

JobRepository
的自定义实现,以丢弃批处理元数据。请注意,
JobRepository
不仅用于存储批处理元数据,还用于通过步骤/作业执行上下文在步骤之间共享数据。因此,如果您确实想使用“NoOp”作业存储库,则需要确保不需要/使用该功能。

© www.soinside.com 2019 - 2024. All rights reserved.