Spring Batch: как настроить PagingQueryProvider без SortKeys - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь настроить bean-компонент JdbcPagingItemReader, и я не знаю точно имена столбцов в таблице, поэтому я хотел бы знать, есть ли способ настроить PagingQueryProvider без ключа сортировки.

@Bean
public JdbcPagingItemReader<Map<String, Object>> pagingItemReader(DataSource dataSource){
    JdbcPagingItemReader<Map<String, Object>> itemReader = new JdbcPagingItemReader<>();
    itemReader.setDataSource(dataSource);
    itemReader.setQueryProvider(queryProvider());
    itemReader.setPageSize(1000);

    itemReader.setRowMapper(BatchConfiguration::rowMapper);

    return itemReader;
}


/* This configuration throws the exception
 * 'java.lang.IllegalArgumentException: sortKey must be specified'
 */
private MySqlPagingQueryProvider queryProvider(){
    MySqlPagingQueryProvider queryProvider = new MySqlPagingQueryProvider();
    queryProvider.setSelectClause("SELECT *");
    queryProvider.setFromClause("FROM "+ clientTableName);

    return queryProvider;
}

1 Ответ

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

Я хотел бы знать, есть ли способ настроить PagingQueryProvider без ключа сортировки.

Нет, это невозможно.sortKey является обязательным для построения оператора SQL.Вот выдержка из справочной документации :

SqlPagingQueryProviderFactoryBean требует, чтобы вы указали предложение select и предложение from.Вы также можете указать необязательное условие where.Эти пункты и требуемый sortKey используются для построения оператора SQL.

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