我刚刚使用 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,我只是想测试我的读写器和处理器是否正常工作。
UPDATE:从 spring 2.5.0 开始,您应该使用spring.batch.jdbc.initialize-schema
反而。看source https://github.com/spring-projects/spring-boot/blob/2.5.x/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/batch/BatchProperties.java#L79.
使用 Spring Boot 2.0 你可能需要这个:https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/htmlsingle/#howto-initialize-a-spring-batch-database https://docs.spring.io/spring-boot/docs/2.0.0.M7/reference/htmlsingle/#howto-initialize-a-spring-batch-database
spring.batch.initialize-schema=always
默认情况下,如果您使用嵌入式数据库,它只会创建表。
Or
spring.batch.initialize-schema=never
永久禁用它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)