Spring batch using two data Sources

477 Views Asked by At

I'm working on a Spring Batch project where I need to use two different data sources. I'm planning to use RepositoryItemReader and RepositoryItemWriter for reading and writing to these databases. However, I couldn't find any documentation on how to configure Spring Batch for this specific scenario.

Additionally, when I added JPA configuration, Spring Batch seems to default to using MySQL for its internal operations. How can I configure Spring Batch to work with two data sources and prevent this default behavior when using JPA?

1

There are 1 best solutions below

4
Mahmoud Ben Hassine On BEST ANSWER

If you use @EnableBatchProcessing, you can configure the datasource you want for the JobRepository by setting the dataSourceRef attribute. For example:

@Configuration
@EnableBatchProcessing(dataSourceRef = "batchDataSource", transactionManagerRef = "jpaTransactionManager")
public static class JobConfiguration {

}

The equivalent to that with the programmatic approach is by overriding DefaultBatchConfiguration#getDataSource().

The same datasource can then be set on the item reader and writer.