database - Spring Batch Framework - 自动创建批处理表

我刚刚使用 Spring Batch 框架创建了一个批处理作业,但我没有运行 CREATE SQL 的数据库权限。当我尝试运行批处理作业时,我在框架尝试创建 TABLE_BATCH_INSTANCE 时遇到了错误。我尝试禁用

<jdbc:initialize-database data-source="dataSource" enabled="false">    
 ...
</jdbc:initialize-database>

但是我试过之后还是报错了

org.springframework.jdbc.BadSqlGrammarException: PreparedStatementCallback; bad SQL grammar [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME = ? and JOB_KEY = ?]; nested exception is java.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist

无论如何都可以禁用 SQL,我只是想测试我的读写器和处理器是否正常工作。

最佳答案

更新: 从 spring 2.5.0 开始,您应该改用 spring.batch.jdbc.initialize-schema。见 source .


使用 Spring Boot 2.0,您可能需要这个: https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/htmlsingle/#howto-initialize-a-spring-batch-database

spring.batch.initialize-schema=always

默认情况下,它只会在您使用嵌入式数据库时创建表。

或者

 spring.batch.initialize-schema=never

永久禁用它。

https://stackoverflow.com/questions/33249942/

相关文章:

spring - Thymeleaf - 使用 PUBLICID "null"请求的不受支持的实体

java - SpringBoot - BeanDefinitionOverrideExceptio

java - Spring Redis - 从 application.properties 文件中

java - servlet 映射 url 模式上的双通配符 (*) 是什么意思?

java - 通过 Spring 将字段注入(inject) Hibernate 加载的实体中

java - 使用 Spring 将文本文件直接注入(inject) String

mysql - spring jpa application.properties useSSL

java - Spring Boot 是否可以使用 JAR 包装来提供 JSP?

spring - 是否可以在表单 :select/form:option 的 itemLabel 中

java - Spring Security 中的 "principal"是什么?