@Override
  @Transactional(readOnly = true)
  public Page<UserGroupCheck> findAllByPage(Pageable pageable, Long groupId, long total) {
    // TODO use setParameter
    String sql = USER_GROUP_CHECK_QUERY;
    String orderBy = "";
    String sort = "";
    Iterator<Order> i = pageable.getSort().iterator();
    while (i.hasNext()) {
      Order order = i.next();
      orderBy = order.getProperty();
      sort = order.getDirection().name();
    }
    sql = sql.replace(ORDER_BY, orderBy);
    sql = sql.replace(SORT, sort);
    Query query = entityManager.createNativeQuery(sql);
    query.setParameter(GROUP_ID, groupId);
    query.setParameter(LIMIT, pageable.getPageSize());
    query.setParameter(OFFSET, pageable.getOffset());

    List<UserGroupCheck> result = JpaUtil.getResultList(query, UserGroupCheck.class);
    Page<UserGroupCheck> page = new PageImpl<>(result, pageable, total);

    return page;
  }
  protected String orderByExpression(Sort sort) {
    StringBuilder sb = new StringBuilder();

    for (Iterator<Order> it = sort.iterator(); it.hasNext(); ) {
      Order order = it.next();
      sb.append(order.getProperty()).append(' ').append(order.getDirection());

      if (it.hasNext()) sb.append(COMMA);
    }
    return sb.toString();
  }
예제 #3
0
  protected Map<String, Object> applySorting(Map<String, Object> parameter, Sort sort) {

    if (sort == null) return parameter;

    StringBuilder sb = new StringBuilder();
    for (Order order : sort) {
      sb.append("," + order.getProperty() + " " + order.getDirection());
    }
    parameter.put(ORDER_STRING, sb.substring(1));

    return parameter;
  }
예제 #4
0
  /**
   * Converts the given {@link org.springframework.data.domain.Sort} into {@link SortField}s.
   *
   * @param sort the {@link org.springframework.data.domain.Sort} instance to be transformed into
   *     JOOQ {@link SortField}s.
   * @return the list of {@link SortField}s.
   */
  public static List<SortField<?>> toOrders(Sort sort) {
    if (sort == null) {
      return Collections.emptyList();
    }

    List<SortField<?>> orders = new ArrayList<SortField<?>>();

    for (Order order : sort) {
      orders.add(
          field(order.getProperty())
              .sort(order.getDirection() == Direction.ASC ? SortOrder.ASC : SortOrder.DESC));
    }

    return orders;
  }
예제 #5
0
 private static String toJpaDirection(Order order) {
   return order.getDirection().name().toLowerCase(Locale.US);
 }