我尝试了Spring Batch Getting Started Guide 呈现的here(代码here)。
我所做的唯一改变是将我的进程指向一个本地MySQL示例(而不是嵌入式hsqldb db),以使练习更加实用。为了实现这一点,我首先创建了这里描述的 meta表。我也是按照这里的升级指南来的。
但是运行这个简单的作业返回了Unknown column 'CREATE_TIME' in 'field list'
:
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:95)
...
Caused by: org.springframework.jdbc.BadSqlGrammarException:
PreparedStatementCallback; bad SQL grammar [
SELECT STEP_EXECUTION_ID, STEP_NAME, START_TIME, END_TIME, STATUS, COMMIT_COUNT,
READ_COUNT, FILTER_COUNT, WRITE_COUNT, EXIT_CODE, EXIT_MESSAGE, READ_SKIP_COUNT,
WRITE_SKIP_COUNT, PROCESS_SKIP_COUNT, ROLLBACK_COUNT, LAST_UPDATED,
VERSION, CREATE_TIME
from BATCH_STEP_EXECUTION
where JOB_EXECUTION_ID = ? order by STEP_EXECUTION_ID
]
...
Caused by: java.sql.SQLSyntaxErrorException:
Unknown column 'CREATE_TIME' in 'field list'
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)
这表明表BATCH_STEP_EXECUTION
上应该有一个CREATE_TIME列。但是文档中的 meta表DDL只在BATCH_JOB_EXECUTION
上显示CREATE_TIME。
所以我加了这个专栏。然后我得到一个错误,指示BATCH_STEP_EXECUTION
上的START_TIME不能为null。所以我也做了这个改变。现在这个过程似乎奏效了。
我是否设置错误导致了这些初始错误?我使用的框架版本与 Getting Started Guide中使用的相同。或者可能Spring Batch meta表在文档中定义不正确?
1条答案
按热度按时间vbopmzt11#
谢谢你提出这个。v5的文档不是最新的。这是固定的:https://github.com/spring-projects/spring-batch/pull/4356
该图也将更新,参见https://github.com/spring-projects/spring-batch/issues/4358。