Example usage for org.springframework.batch.item.database Order DESCENDING

List of usage examples for org.springframework.batch.item.database Order DESCENDING

Introduction

In this page you can find the example usage for org.springframework.batch.item.database Order DESCENDING.

Prototype

Order DESCENDING

To view the source code for org.springframework.batch.item.database Order DESCENDING.

Click Source Link

Usage

From source file:admin.service.JdbcSearchableJobExecutionDao.java

/**
 * @return a {@link PagingQueryProvider} with a where clause to narrow the
 * query// w ww . j av  a  2  s  .  c o  m
 * @throws Exception
 */
private PagingQueryProvider getPagingQueryProvider(String fromClause, String whereClause) throws Exception {
    SqlPagingQueryProviderFactoryBean factory = new SqlPagingQueryProviderFactoryBean();
    factory.setDataSource(dataSource);
    fromClause = "%PREFIX%JOB_EXECUTION E, %PREFIX%JOB_INSTANCE I"
            + (fromClause == null ? "" : ", " + fromClause);
    factory.setFromClause(getQuery(fromClause));
    factory.setSelectClause(FIELDS);
    Map<String, Order> sortKeys = new HashMap<String, Order>();
    sortKeys.put("JOB_EXECUTION_ID", Order.DESCENDING);
    factory.setSortKeys(sortKeys);
    whereClause = "E.JOB_INSTANCE_ID=I.JOB_INSTANCE_ID" + (whereClause == null ? "" : " and " + whereClause);
    factory.setWhereClause(whereClause);

    return (PagingQueryProvider) factory.getObject();
}

From source file:admin.service.JdbcSearchableStepExecutionDao.java

/**
 * @return a {@link PagingQueryProvider} with a where clause to narrow the
 * query//  ww w  .  j a  va2s  . co m
 * @throws Exception
 */
private PagingQueryProvider getPagingQueryProvider(String whereClause) {
    SqlPagingQueryProviderFactoryBean factory = new SqlPagingQueryProviderFactoryBean();
    factory.setDataSource(dataSource);
    factory.setFromClause(
            getQuery("%PREFIX%STEP_EXECUTION S, %PREFIX%JOB_EXECUTION J, %PREFIX%JOB_INSTANCE I"));
    factory.setSelectClause(FIELDS);
    Map<String, Order> sortKeys = new HashMap<String, Order>();
    sortKeys.put("STEP_EXECUTION_ID", Order.DESCENDING);
    factory.setSortKeys(sortKeys);
    if (whereClause != null) {
        factory.setWhereClause(whereClause
                + " AND S.JOB_EXECUTION_ID = J.JOB_EXECUTION_ID AND J.JOB_INSTANCE_ID = I.JOB_INSTANCE_ID");
    }
    try {
        return (PagingQueryProvider) factory.getObject();
    } catch (Exception e) {
        throw new IllegalStateException("Unexpected exception creating paging query provide", e);
    }
}

From source file:org.springframework.batch.item.database.JdbcPagingQueryIntegrationTests.java

@Test
public void testQueryFromStartWithGroupBy() throws Exception {
    AbstractSqlPagingQueryProvider queryProvider = (AbstractSqlPagingQueryProvider) getPagingQueryProvider();
    Map<String, Order> sortKeys = new LinkedHashMap<String, Order>();
    sortKeys.put("NAME", Order.ASCENDING);
    sortKeys.put("CODE", Order.DESCENDING);
    queryProvider.setSortKeys(sortKeys);
    queryProvider.setSelectClause("select NAME, CODE, sum(VALUE)");
    queryProvider.setGroupClause("NAME, CODE");

    int count = 0;
    int total = 5;

    List<Map<String, Object>> list = jdbcTemplate.queryForList(queryProvider.generateFirstPageQuery(pageSize));
    logger.debug("First page result: " + list);
    assertEquals(pageSize, list.size());
    count += pageSize;//from  w w  w  . j ava2  s.c  o m
    Map<String, Object> oldValues = null;

    while (count < total) {
        Map<String, Object> startAfterValues = getStartAfterValues(queryProvider, list);
        assertNotSame(oldValues, startAfterValues);
        list = jdbcTemplate.queryForList(queryProvider.generateRemainingPagesQuery(pageSize),
                getParameterList(null, startAfterValues).toArray());
        count += list.size();

        if (list.size() < pageSize) {
            assertEquals(1, list.size());
        } else {
            assertEquals(pageSize, list.size());
        }
        oldValues = startAfterValues;
    }

    assertEquals(total, count);
}