Пример #1
0
  protected Query setPageParameterToQuery(Query q, Page<T> page) {
    AssertUtils.isTrue(page.getPageSize() > 0, "Page Size must larger than zero");

    q.setFirstResult(page.getOffset());
    q.setMaxResults(page.getPageSize());

    return q;
  }
Пример #2
0
  protected Criteria setPageParameterToCriteria(Criteria c, Page<T> page) {
    AssertUtils.isTrue(page.getPageSize() > 0, "Page Size must larger than zero");

    c.setFirstResult(page.getOffset());
    c.setMaxResults(page.getPageSize());

    if (page.isOrderBySetted()) {
      String[] orderByArray = StringUtils.split(page.getOrderBy(), ',');
      String[] orderArray = StringUtils.split(page.getOrder(), ',');

      AssertUtils.isTrue(orderByArray.length == orderArray.length, "分页多重排序参数中,排序字段与排序方向的个数不相等");

      for (int i = 0; i < orderByArray.length; ++i) {
        if ("asc".equals(orderArray[i])) c.addOrder(Order.asc(orderByArray[i]));
        else {
          c.addOrder(Order.desc(orderByArray[i]));
        }
      }
    }
    return c;
  }