Рубрики
Без рубрики

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

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

Автор оригинала: mkyong.

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

  
    
  

Проблема

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

  
	
	
	
  
 
  
	
  

  
	
	
	
	
  

Он запрашивает 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 XML. Например,



  
  
	
	
	
	
  
	
  
  
	
	
  


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

Рекомендации

  1. Пакет Spring – Схема метаданных

Оригинал: “https://mkyong.com/spring-batch/spring-batch-metadata-tables-are-not-created-automatically/”