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; }
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; }