我刚刚使用 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?