Вложенный запрос в весенней пакетной обработке - PullRequest
0 голосов
/ 19 апреля 2020

Я хочу создать процесс ETL с использованием Spring Batch, шаги будут считаны из БД и вставлены в одну БД, поэтому в основном я собираю аналогичную информацию из разных БД и вставляю их в одну БД. большой сложный запрос, который мне нужно выполнить на этих БД, и результат будет вставлен в так называемую одну БД для дальнейшей обработки, мой главный концерт заключается в том, что я хочу сослаться на этот запрос, например, в JpaPagingItemReader, если есть способ, которым я Можно, например, добавить этот запрос в мой проект как файл. sql, а затем сослаться на него в считывателе?

Или любое другое решение, которому я могу следовать?

Спасибо

1 Ответ

0 голосов
/ 20 апреля 2020

есть ли способ, например, добавить этот запрос в мой проект в виде файла. sql и затем сослаться на него в программе чтения? Или любое другое решение, которому я могу следовать?

Вы можете поместить свой запрос в файл свойств и внедрить его в свой ридер, например:

@Configuration
@EnableBatchProcessing
@PropertySource("classpath:application.properties")
public class MyJob {

    @Bean
    public JpaPagingItemReader itemReader(@Value("${query}") String query) {
        return new JpaPagingItemReaderBuilder<>()
                .queryString(query)
                // set other reader properties
                .build();
    }

    // ...
}

В этом примере вы должны есть свойство query=your sql query в application.properties. На самом деле это обычный механизм внедрения свойств Spring, здесь ничего не указывается Spring Batch c.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...