Example usage for org.springframework.data.domain Pageable getSort

List of usage examples for org.springframework.data.domain Pageable getSort

Introduction

In this page you can find the example usage for org.springframework.data.domain Pageable getSort.

Prototype

Sort getSort();

Source Link

Document

Returns the sorting parameters.

Usage

From source file:com.wiiyaya.framework.provider.utils.PageableHelper.java

public static Pageable mappingAttr(Map<String, String> replaceAttr, Pageable pageRequest) {
    if (pageRequest.getSort() == null || replaceAttr == null || replaceAttr.size() == 0) {
        return pageRequest;
    }/*  ww w .ja  va 2s  . c  o m*/
    List<Order> orders = new ArrayList<Order>();

    for (Map.Entry<String, String> entry : replaceAttr.entrySet()) {
        Order ctOrd = pageRequest.getSort().getOrderFor(entry.getKey());
        if (ctOrd != null) {
            ctOrd = new Order(ctOrd.getDirection(), entry.getValue());
            orders.add(ctOrd);
        }
    }
    return new PageRequest(pageRequest.getPageNumber(), pageRequest.getPageSize(), new Sort(orders));
}

From source file:cat.albirar.framework.utilities.PageUtilities.java

/**
 * Clone a {@link Pageable} object./*from   w ww .  j a  v  a  2s  . c o m*/
 * 
 * @param origin The origin
 * @return The new instance with all the origin values. Null if origin is null
 */
public static final Pageable copyPageable(Pageable origin) {
    Pageable d;

    if (origin != null) {
        d = new PageRequest(origin.getPageNumber(), origin.getPageSize(), origin.getSort());
    } else {
        d = null;
    }
    return d;
}

From source file:cn.edu.zjnu.acm.judge.mapper.BestSubmissionsBuilder.java

public static String bestSubmissions(@Param("problemId") long problemId, @Param("pageable") Pageable pageable) {
    Set<String> dejaVu = new TreeSet<>(String.CASE_INSENSITIVE_ORDER);
    Sort sort = Optional.ofNullable(pageable.getSort()).map(s -> s.and(DEFAULT_SORT)).orElse(DEFAULT_SORT);
    Sort.Order[] orders = StreamSupport.stream(sort.spliterator(), false)
            .filter(order -> ALLOW_COLUMNS.contains(order.getProperty()) && dejaVu.add(order.getProperty()))
            .toArray(Sort.Order[]::new);
    final int length = orders.length;
    log.debug("{}", Arrays.asList(orders));

    StringBuilder sb = new StringBuilder(
            "select " + SubmissionMapper.LIST_COLUMNS + " from solution s where problem_id=").append(problemId)
                    .append(" and score=100 ");
    for (int i = length - 1; i >= 0; --i) {
        sb.append("and(user_id");
        for (int j = 0; j <= i; ++j) {
            sb.append(',').append(orders[j].getProperty());
        }//from ww w  . ja va 2 s .c om
        sb.append(")in(select user_id");
        for (int j = 0; j < i; ++j) {
            sb.append(',').append(orders[j].getProperty());
        }
        sb.append(',').append(orders[i].isAscending() ? "min" : "max").append("(")
                .append(orders[i].getProperty()).append(")").append(orders[i].getProperty())
                .append(" from solution where problem_id=").append(problemId).append(" and score=100 ");
    }
    for (int i = 0; i < length; ++i) {
        sb.append("group by user_id)");
    }
    if (length > 0) {
        sb.append(" order by ");
        for (int i = 0; i < length; ++i) {
            if (i > 0) {
                sb.append(",");
            }
            sb.append(orders[i].getProperty());
            if (!orders[i].isAscending()) {
                sb.append(" desc");
            }
        }
    }
    return sb.append(" limit ").append(pageable.getOffset()).append(",").append(pageable.getPageSize())
            .toString();
}

From source file:org.oncoblocks.centromere.web.controller.RequestUtils.java

/**
 * Uses annotated {@link Model} class definitions to remap any request attribute names in a 
 *   {@link Pageable} so that they match repository attribute names.
 *
 * @param pageable {@link Pageable}/*from  w w w .ja  va 2 s  .c o m*/
 * @return
 */
public static Pageable remapPageable(Pageable pageable, Class<? extends Model<?>> model) {
    logger.debug("Attempting to remap Pageable parameter names.");
    Sort sort = null;
    if (pageable.getSort() != null) {
        List<Sort.Order> orders = new ArrayList<>();
        for (Sort.Order order : pageable.getSort()) {
            orders.add(new Sort.Order(order.getDirection(), remapParameterName(order.getProperty(), model)));
        }
        sort = new Sort(orders);
    }
    return new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), sort);
}

From source file:cz.jirutka.spring.data.jdbc.sql.SQL2008SqlGenerator.java

@Override
public String selectAll(TableDescription table, Pageable page) {
    Sort sort = page.getSort() != null ? page.getSort() : sortById(table);

    return format("%s OFFSET %d ROWS FETCH NEXT %d ROW ONLY", selectAll(table, sort), page.getOffset(),
            page.getPageSize());//w  w w  .  jav  a  2  s .  co  m
}

From source file:cz.jirutka.spring.data.jdbc.sql.Oracle9SqlGenerator.java

@Override
public String selectAll(TableDescription table, Pageable page) {
    Sort sort = page.getSort() != null ? page.getSort() : sortById(table);

    return format(
            "SELECT t2__.* FROM ( " + "SELECT t1__.*, ROWNUM as rn__ FROM ( %s ) t1__ "
                    + ") t2__ WHERE t2__.rn__ > %d AND ROWNUM <= %d",
            selectAll(table, sort), page.getOffset(), page.getPageSize());
}

From source file:com.trenako.services.BrandsServiceImpl.java

@Override
public Page<Brand> findAll(Pageable pageable) {
    if (pageable.getSort() == null) {
        pageable = new PageRequest(pageable.getPageNumber(), pageable.getPageSize(), NAME_SORT);
    }//from   www  . j a v  a  2s  .  com
    return repo.findAll(pageable);
}

From source file:net.turnbig.jdbcx.dialect.impl.InformixDialect.java

@Override
public String getPageableSql(String sql, Pageable pageable) {
    String sortedSql = SelectSqlUtils.addSort(sql, pageable.getSort());
    String pagedSql = "select skip {1} first {2} * from ({0}) temp_t";
    return MessageFormat.format(pagedSql, sortedSql, pageable.getOffset(), pageable.getPageSize());
}

From source file:net.turnbig.jdbcx.dialect.impl.Db2Dialect.java

@Override
public String getPageableSql(String sql, Pageable pageable) {
    String sortedSql = SelectSqlUtils.addSort(sql, pageable.getSort());
    int startRow = pageable.getOffset();
    int endRow = pageable.getOffset() + pageable.getPageSize();
    String pagedSql = "select * from ( select tmp_page.*,rownumber() over() as row_id from ({0}) as tmp_page"
            + ") where row_id between {1} and {2} ";
    return MessageFormat.format(pagedSql, sortedSql, startRow, endRow);
}

From source file:cz.jirutka.spring.data.jdbc.sql.LimitOffsetSqlGenerator.java

@Override
public String selectAll(TableDescription table, Pageable page) {
    return format("%s LIMIT %d OFFSET %d", selectAll(table, page.getSort()), page.getPageSize(),
            page.getOffset());//from w w w.  j  a  v  a 2  s.  c o  m
}