Spring Batch Docs中的 metaTables似乎不正确

icomxhvb  于 2023-04-28  发布在  Spring
关注(0)|答案(1)|浏览(153)

我尝试了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表在文档中定义不正确?

相关问题