Java 未知表';批量作业顺序';字段内列表

Java 未知表';批量作业顺序';字段内列表,java,mysql,spring-batch,Java,Mysql,Spring Batch,我在跑步: 弹簧批次2.2.7-释放 MySQL 5.6.17 mysql-connector-java-5.1.6.jar 我使用SpringBatch 2.2.7-RELEASE的org.springframework.batch.core包中提供的schema mysql.sql文件为SpringBatch metada创建了一个新的数据库 我使用以下配置配置了transactionManager: batch.db.driver=com.mysql.jdbc.Driver batch

我在跑步:

  • 弹簧批次2.2.7-释放
  • MySQL 5.6.17
  • mysql-connector-java-5.1.6.jar
我使用SpringBatch 2.2.7-RELEASE的
org.springframework.batch.core
包中提供的
schema mysql.sql
文件为SpringBatch metada创建了一个新的数据库

我使用以下配置配置了transactionManager:

batch.db.driver=com.mysql.jdbc.Driver
batch.db.url=jdbc:mysql://localhost:3306/myDatabase
batch.db.user=myRootUser
batch.db.password=myRootPassword
当我尝试运行作业时,出现以下错误:

org.springframework.dao.DataAccessResourceFailureException: Could not obtain sequence value; nested exception is com.mysql.jdbc.exceptions.jdbc4.MySQL
SyntaxErrorException: Unknown table 'BATCH_JOB_SEQ' in field list
        at org.springframework.jdbc.support.incrementer.AbstractSequenceMaxValueIncrementer.getNextKey(AbstractSequenceMaxValueIncrementer.java:79)
        at org.springframework.jdbc.support.incrementer.AbstractDataFieldMaxValueIncrementer.nextLongValue(AbstractDataFieldMaxValueIncrementer.java:1
25)
        at org.springframework.batch.core.repository.dao.JdbcJobInstanceDao.createJobInstance(JdbcJobInstanceDao.java:98)
        at org.springframework.batch.core.repository.support.SimpleJobRepository.createJobExecution(SimpleJobRepository.java:135)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
        at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:96)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:260)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:94)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.batch.core.repository.support.AbstractJobRepositoryFactoryBean$1.invoke(AbstractJobRepositoryFactoryBean.java:172)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
        at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
        at $Proxy5.createJobExecution(Unknown Source)
        at org.springframework.batch.core.launch.support.SimpleJobLauncher.run(SimpleJobLauncher.java:124)
        at com.tinqin.deliverymanager.batch.executor.OneJobExecutor.execute(OneJobExecutor.java:35)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at com.tinqin.deliverymanager.batch.RunBatch.main(RunBatch.java:37)
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown table 'BATCH_JOB_SEQ' in field list
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
        at com.mysql.jdbc.Util.getInstance(Util.java:381)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030)
        at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491)
        at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
        at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
        at org.springframework.jdbc.support.incrementer.AbstractSequenceMaxValueIncrementer.getNextKey(AbstractSequenceMaxValueIncrementer.java:70)
        ... 25 more
检查数据库内容时,我确实看到了带有单个条目(0,0)的表
BATCH\u JOB\u SEQ

使用
DEBUG
log level,stacktrace前面的行如下所示:

DEBUG [DataSourceUtils] - Fetching JDBC Connection from DataSource
DEBUG [DriverManagerDataSource] - Creating new JDBC DriverManager Connection to [jdbc:mysql://localhost:3306/myDatabase]
DEBUG [DataSourceUtils] - Registering transaction synchronization for JDBC Connection
DEBUG [JdbcTemplate] - Executing prepared SQL query
DEBUG [JdbcTemplate] - Executing prepared SQL statement [SELECT JOB_INSTANCE_ID, JOB_NAME from BATCH_JOB_INSTANCE where JOB_NAME =
 ? and JOB_KEY = ?]
DEBUG [DataSourceUtils] - Returning JDBC Connection to DataSource
DEBUG [DataSourceTransactionManager] - Initiating transaction rollback
DEBUG [DataSourceTransactionManager] - Rolling back JDBC transaction on Connection [com.mysql.jdbc.JDBC4Connection@b7a85a]
DEBUG [DataSourceUtils] - Resetting isolation level of JDBC Connection [com.mysql.jdbc.JDBC4Connection@b7a85a] to 4
DEBUG [DataSourceTransactionManager] - Releasing JDBC Connection [com.mysql.jdbc.JDBC4Connection@b7a85a] after transaction
DEBUG [DataSourceUtils] - Returning JDBC Connection to DataSource
奇怪的是,执行的查询既不包含对批处理作业的任何引用,也不包含整个执行日志


原因可能是什么?我如何纠正?谢谢。

检查@BhargavKumarR谢谢,但正如我所说,我已经使用了提供的数据库创建脚本。我检查了一下表是否存在。嘿,我面临着同样的问题。有更新吗?