我收到错误表'test.batch_job_instance'不存在

问题描述 投票:5回答:1

我是春季批次新手。我已经使用inmemoryrepository配置了我的工作。但似乎仍然使用db来持久工作Metadeta。我的春季批量配置是:

@Configuration公共类BatchConfiguration {

@Autowired
private StepBuilderFactory stepBuilderFactory;

@Autowired
private JobBuilderFactory jobBuilder;

@Bean
public JobLauncher jobLauncher() throws Exception {
    SimpleJobLauncher job =new SimpleJobLauncher();
    job.setJobRepository(getJobRepo());
    job.afterPropertiesSet();
    return job;
}


@Bean
public PlatformTransactionManager getTransactionManager() {
    return new ResourcelessTransactionManager();
}

@Bean
public JobRepository getJobRepo() throws Exception {
    return new MapJobRepositoryFactoryBean(getTransactionManager()).getObject();
}




@Bean
public Step step1(JdbcBatchItemWriter<Person> writer) throws Exception {
    return stepBuilderFactory.get("step1")
        .<Person, Person> chunk(10)
        .reader(reader())
        .processor(processor())
        .writer(writer).repository(getJobRepo())
        .build();
}

 @Bean
public Job job( @Qualifier("step1") Step step1) throws Exception {
    return jobBuilder.get("myJob").start(step1).repository(getJobRepo()).build();
}

}

如何解决上述问题?

spring-batch
1个回答
13
投票

如果您正在使用Sprint引导,application.properties中的一个简单属性将解决问题spring.batch.initialize-schema = ALWAYS

© www.soinside.com 2019 - 2024. All rights reserved.