Springバッチメタデータテーブルは自動的には作成されませんか?

Spring Batchメタデータテーブルは自動的に作成されませんか?

jobRepositoryMapJobRepositoryFactoryBean(メモリ内のメタデータ)で作成されている場合、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バッチジョブを再度実行すると、これらのメタテーブルが自動的に作成されます。