Spring Batch-Metadatentabellen werden nicht automatisch erstellt?

Spring Batch-Metadatentabellen werden nicht automatisch erstellt?

WennjobRepository mitMapJobRepositoryFactoryBean (Metadaten im Speicher) erstellt wird, werden die Spring-Batch-Jobs erfolgreich ausgeführt.

spring-config.xml

  
    
  

Problem

Nach dem Ändern derjobRepository zum Speichern von Metadaten in der Datenbank:

spring-config.xml

  
    
    
    
  

  
    
  

  
    
    
    
    
  

Es wird angezeigt, dass die Tabellebatch_job_instancenicht vorhanden ist. Warum hat Spring diese Metatabellen nicht automatisch erstellt?

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)

Lösung

Die Skripte der Metatabelle werden inspring-batch.jargespeichert. Sie müssen sie manuell erstellen.

spring-batch-meta-data-tables

Normalerweise können Sie die Erstellung des Tabellenskripts über die Spring-XML-Konfigurationsdatei automatisieren. Zum Beispiel,

spring-config.xml



  
  
    
    
    
    
  

  
  
    
    
  

Führen Sie Ihre Spring Batch-Jobs erneut aus. Diese Metatabellen werden automatisch erstellt.