Java Code Examples for org.springframework.data.domain.Sort#isUnsorted()

The following examples show how to use org.springframework.data.domain.Sort#isUnsorted() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SpannerStatementQueryExecutor.java    From spring-cloud-gcp with Apache License 2.0 6 votes vote down vote up
public static StringBuilder applySort(Sort sort, StringBuilder sql,
		SpannerPersistentEntity<?> persistentEntity) {
	if (sort == null || sort.isUnsorted()) {
		return sql;
	}
	sql.append(" ORDER BY ");
	StringJoiner sj = new StringJoiner(" , ");
	sort.iterator().forEachRemaining((o) -> {
		SpannerPersistentProperty property = persistentEntity.getPersistentProperty(o.getProperty());
		String sortedPropertyName = (property != null) ? property.getColumnName() : o.getProperty();
		String sortedProperty = o.isIgnoreCase() ? "LOWER(" + sortedPropertyName + ")"
				: sortedPropertyName;
		sj.add(sortedProperty + (o.isAscending() ? " ASC" : " DESC"));
	});
	return sql.append(sj);
}
 
Example 2
Source File: SpringPageableRequestArgumentBinder.java    From micronaut-data with Apache License 2.0 5 votes vote down vote up
@Override
public BindingResult<Pageable> bind(ArgumentConversionContext<Pageable> context, HttpRequest<?> source) {
    HttpParameters parameters = source.getParameters();
    int page = Math.max(parameters.getFirst(configuration.getPageParameterName(), Integer.class)
            .orElse(0), 0);
    final int configuredMaxSize = configuration.getMaxPageSize();
    final int defaultSize = configuration.getDefaultPageSize();
    int size = Math.min(parameters.getFirst(configuration.getSizeParameterName(), Integer.class)
            .orElse(defaultSize), configuredMaxSize);
    String sortParameterName = configuration.getSortParameterName();
    boolean hasSort = parameters.contains(sortParameterName);
    Pageable pageable;
    Sort sort;
    if (hasSort) {
        List<String> sortParams = parameters.getAll(sortParameterName);

        List<Sort.Order> orders = sortParams.stream()
                .map(sortMapper)
                .collect(Collectors.toList());
        sort = Sort.by(orders);
    } else {
        sort = Sort.unsorted();
    }

    if (size < 1) {
        if (page == 0 && configuredMaxSize < 1 && sort.isUnsorted()) {
            pageable = Pageable.unpaged();
        } else {
            pageable = PageRequest.of(page, defaultSize, sort);
        }
    } else {
        pageable = PageRequest.of(page, size, sort);
    }

    return () -> Optional.of(pageable);
}
 
Example 3
Source File: AqlUtils.java    From spring-data with Apache License 2.0 5 votes vote down vote up
private static StringBuilder buildSortClause(
	final Sort sort,
	@Nullable final String varName,
	final StringBuilder clause) {

	if (sort.isUnsorted()) {
		return clause;
	}

	final String prefix = StringUtils.hasText(varName) ? escapeSortProperty(varName) : null;
	clause.append("SORT ");
	boolean first = true;

	for (final Sort.Order order : sort) {
		if (!first) {
			clause.append(", ");
		} else {
			first = false;
		}

		if (prefix != null) {
			clause.append(prefix).append('.');
		}
		final String escapedProperty = escapeSortProperty(order.getProperty());
		clause.append(escapedProperty).append(' ').append(order.getDirection());
	}
	return clause;

}
 
Example 4
Source File: AbstractQueryGenerator.java    From spring-data-cosmosdb with MIT License 5 votes vote down vote up
private String generateQuerySort(@NonNull Sort sort) {
    if (sort.isUnsorted()) {
        return "";
    }

    final String queryTail = "ORDER BY";
    final List<String> subjects = sort.stream().map(this::getParameter).collect(Collectors.toList());

    return queryTail + " " + String.join(",", subjects);
}
 
Example 5
Source File: SimpleMybatisRepository.java    From spring-data-mybatis with Apache License 2.0 5 votes vote down vote up
@Override
public List<T> findAll(Sort sort) {
	if (null == sort || sort.isUnsorted()) {
		return findAll();
	}
	return selectList("__find", Collections.singletonMap("__sort", sort));
}
 
Example 6
Source File: SimpleMybatisRepository.java    From spring-data-mybatis with Apache License 2.0 5 votes vote down vote up
@Override
public <X extends T> List<T> findAll(Sort sort, X condition) {
	if (null == sort || sort.isUnsorted()) {
		return findAll(condition);
	}
	return selectList("__find", new HashMap<String, Object>() {
		{
			put("__sort", sort);
			put("__condition", condition);
		}
	});
}
 
Example 7
Source File: MybatisMapperBuildAssistant.java    From spring-data-mybatis with Apache License 2.0 5 votes vote down vote up
protected String buildStandardOrderBy(Sort sort) {
	if (null == sort || sort.isUnsorted()) {
		return "";
	}

	final Map<String, String> map = findNormalColumns().stream()
			.collect(Collectors.toMap(p -> p.getName(), p -> p.getColumnName()));
	return " order by " + sort.stream()
			.map(order -> map.getOrDefault(order.getProperty(), order.getProperty())
					+ ' ' + order.getDirection().name().toLowerCase())
			.collect(Collectors.joining(","));

}
 
Example 8
Source File: DerivedQueryCreator.java    From spring-data with Apache License 2.0 4 votes vote down vote up
/**
 * Builds a full AQL query from a built Disjunction, additional information from PartTree and special parameters
 * caught by ArangoParameterAccessor
 *
 * @param criteria
 * @param sort
 * @return
 */
@Override
protected String complete(final Criteria criteria, final Sort sort) {
	if (tree.isDistinct() && !tree.isCountProjection()) {
		LOGGER.debug("Use of 'Distinct' is meaningful only in count queries");
	}
	final StringBuilder query = new StringBuilder();

	final String with = withCollections.stream().collect(Collectors.joining(", "));
	if (!with.isEmpty()) {
		query.append("WITH ").append(with).append(" ");
	}

	query.append("FOR ").append("e").append(" IN ").append(collectionName);

	if (!criteria.getPredicate().isEmpty()) {
		query.append(" FILTER ").append(criteria.getPredicate());
	}

	if (tree.isCountProjection() || tree.isExistsProjection()) {
		if (tree.isDistinct()) {
			query.append(" COLLECT entity = ").append("e");
		}
		query.append(" COLLECT WITH COUNT INTO length");
	}

	String sortString = " " + AqlUtils.buildSortClause(sort, "e");
	if ((!this.geoFields.isEmpty() || isUnique != null && isUnique) && !tree.isDelete() && !tree.isCountProjection()
			&& !tree.isExistsProjection()) {

		final String distanceSortKey = " SORT " + Criteria
				.distance(uniqueLocation, bind(getUniquePoint()[0]), bind(getUniquePoint()[1])).getPredicate();
		if (sort.isUnsorted()) {
			sortString = distanceSortKey;
		} else {
			sortString = distanceSortKey + ", " + sortString.substring(5, sortString.length());
		}
	}
	query.append(sortString);

	if (tree.isLimiting()) {
		query.append(" LIMIT ").append(tree.getMaxResults());
	}

	final Pageable pageable = accessor.getPageable();
	if (pageable != null && pageable.isPaged()) {
		query.append(" ").append(AqlUtils.buildLimitClause(pageable));
	}
	if (tree.isDelete()) {
		query.append(" REMOVE e IN ").append(collectionName);
	} else if (tree.isCountProjection() || tree.isExistsProjection()) {
		query.append(" RETURN length");
	} else {
		query.append(" RETURN ");
		if (this.geoFields.isEmpty()) {
			query.append("e");
		} else {
			query.append(format("MERGE(e, { '_distance': %s })",
				Criteria.distance(uniqueLocation, bind(getUniquePoint()[0]), bind(getUniquePoint()[1]))
						.getPredicate()));
		}
	}
	return query.toString();
}