Ограничить общее количество записей, которые JdbcPagingItemReader может прочитать в проекте Spring Batch. - PullRequest
0 голосов
/ 25 января 2019

Я пытаюсь прочитать таблицу базы данных с миллионами записей, и по этой причине я использую JdbcPagingItemReader.

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

Вот так выглядит мой читатель:

   @Bean (name = "metadataItemReader")
   public ItemReader<DocumentMetadata> itemReader( @Value( "${count}" ) int count ) {

      JdbcPagingItemReader<DocumentMetadata> reader = new JdbcPagingItemReader<>();
      final SqlPagingQueryProviderFactoryBean sqlPagingQueryProviderFactoryBean = new SqlPagingQueryProviderFactoryBean();
      sqlPagingQueryProviderFactoryBean.setDataSource(dataSource);
      sqlPagingQueryProviderFactoryBean.setSelectClause("select id, file_path, file_name, extension, created_by, TO_CHAR(create_date, 'yyyy-mm-dd hh24:mi:ss') as create_date");
      sqlPagingQueryProviderFactoryBean.setFromClause("from document_metadata");
      //sqlPagingQueryProviderFactoryBean.l
      sqlPagingQueryProviderFactoryBean.setSortKey("id");
      try {
         reader.setQueryProvider(sqlPagingQueryProviderFactoryBean.getObject());
      } catch (Exception e) {
         log.error(e.getMessage());
      }
      reader.setDataSource(dataSource);
      reader.setPageSize(10);
      reader.setRowMapper( new MetadataRowMapper() );
      return reader;
   }

1 Ответ

0 голосов
/ 26 января 2019

JdbcPagingItemReader - это компонент AbstractItemCountingItemStreamItemReader, у него есть свойство maxItemCount, которое вы можете установить для достижения желаемого.

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