ItemReader для записей, возвращаемых CrudRepository - PullRequest
0 голосов
/ 02 ноября 2018

У меня есть приложение Spring Batch, в котором читатель читает с внешней базы данных, а процессор преобразует ее в POJO моей целевой базы данных, а пишущий записывает преобразованный POJO в базу данных назначения

.

Я использую следующий CrudRepository

public interface MyCrudRepository extends CrudRepository<MyDbEntity, String> {

    List<MyDbEntity> findByPIdBetween(String from, String to);

    List<MyDbEntity> findByPIdGreaterThan(String from);  
}

Я хотел бы знать, как будет выглядеть ItemReader для вышеупомянутого?

Должен ли я позвонить myCrudRepository.findByPidBetween(String from, String to) в @PostConstruct моего ItemReader?

Разве это не делает ItemReader статичным? Поскольку каждый запуск задания будет иметь разные параметры метода для findByPidBetween.

Как должен быть структурирован ItemReader для вышеуказанной проблемы?

1 Ответ

0 голосов
/ 02 ноября 2018

Я хотел знать, как будет выглядеть ItemReader для вышеупомянутого?

RepositoryItemReader это то, что вам нужно. Вы можете использовать его со своим хранилищем и указать метод, который будет использоваться для чтения элементов. Вы можете найти пример здесь

каждый запуск задания будет иметь другой параметр метода для findByPidBetween

Вы можете передать их в качестве параметров на работу и использовать их в своем считывателе.

...