Таблицы метаданных Spring Batch не создаются автоматически?

Таблицы метаданных Spring Batch не создаются автоматически?

ЕслиjobRepository создается с помощьюMapJobRepositoryFactoryBean (метаданные в памяти), пакетные задания Spring выполняются успешно.

spring-config.xml

  
    
  

проблема

После измененияjobRepository для хранения метаданных в базе данных:

spring-config.xml

  
    
    
    
  

  
    
  

  
    
    
    
    
  

Появляется сообщение, что таблицаbatch_job_instance не существует? Почему Spring не создал эти мета-таблицы автоматически?

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Table db.batch_job_instance' doesn't exist
    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:411)

Решение

Скрипты метатаблицы хранятся вspring-batch.jar, вам нужно создать их вручную.

spring-batch-meta-data-tables

Как правило, вы можете автоматически создавать сценарии таблицы через конфигурационный файл Spring XML. Например,

spring-config.xml



  
  
    
    
    
    
  

  
  
    
    
  

Запустите пакетные задания Spring еще раз, эти метатаблицы будут созданы автоматически.