public static void applyQueryParameters(CriteriaBuilder builder, QueryParameters queryParameters) { Objects.requireNonNull(builder); Objects.requireNonNull(queryParameters); builder.limit(queryParameters.getLimit()); if (queryParameters.getOffset() != null) { builder.offset(queryParameters.getOffset()); } if (queryParameters.getOrder() != null) { builder.clearOrder(); builder.orderBy(queryParameters.getOrder().getColumn(), !queryParameters.getOrder().isDesc()); } } }
public static void applyQueryParameters(CriteriaBuilder builder, QueryParameters queryParameters) { Objects.requireNonNull(builder); Objects.requireNonNull(queryParameters); builder.limit(queryParameters.getLimit()); if (queryParameters.getOffset() != null) { builder.offset(queryParameters.getOffset()); } if (queryParameters.getOrder() != null) { builder.clearOrder(); builder.orderBy(queryParameters.getOrder().getColumn(), !queryParameters.getOrder().isDesc()); } } }
criteriaBuilder.clearOrder(); criteriaBuilder.orderBy("group.priority", false); criteriaBuilder.orderBy(order.getColumn(), queryParameters.getOrder().isAsc());
criteriaBuilder.clearOrder(); criteriaBuilder.orderBy("group.priority", false); criteriaBuilder.orderBy(order.getColumn(), queryParameters.getOrder().isAsc());
public int count(Q query) { final QueryParameters queryParameters = query.getParameters(); final SeverityFilter filter = query.getSeverityFilter(); final CriteriaBuilder builder = getCriteriaBuilder(queryParameters); // Remove limit, offset and ordering to fetch count builder.limit(null); builder.offset(null); builder.clearOrder(); // If a severity is given, we must count manually! if (filter != null && filter.getSeverities() != null && !filter.getSeverities().isEmpty()) { List<StatusEntity<T>> collect = findMatching(query, builder); collect = apply(collect, filter); return collect.size(); } else { return countMatching(builder.toCriteria()); } }
public int count(Q query) { final QueryParameters queryParameters = query.getParameters(); final SeverityFilter filter = query.getSeverityFilter(); final CriteriaBuilder builder = getCriteriaBuilder(queryParameters); // Remove limit, offset and ordering to fetch count builder.limit(null); builder.offset(null); builder.clearOrder(); // If a severity is given, we must count manually! if (filter != null && filter.getSeverities() != null && !filter.getSeverities().isEmpty()) { List<StatusEntity<T>> collect = findMatching(query, builder); collect = apply(collect, filter); return collect.size(); } else { return countMatching(builder.toCriteria()); } }
public List<StatusEntity<T>> getStatus(Q query) { final QueryParameters queryParameters = query.getParameters(); final SeverityFilter filter = query.getSeverityFilter(); final CriteriaBuilder criteriaBuilder = getCriteriaBuilder(queryParameters); // The implementors do not know anything about status/severity, // therefore it is not supported to order by severityon dao level. if (isSeverityRelatedQuery(query)) { criteriaBuilder.offset(null); criteriaBuilder.limit(null); // no column "severity" exists, clear it to avoid hibernate complaining about it if (queryParameters.getOrder().getColumn().equals("severity")) { criteriaBuilder.clearOrder(); } } // Query and apply filters List<StatusEntity<T>> collect = findMatching(query, criteriaBuilder); collect = apply(collect, filter); // sort manually if required if (queryParameters.getOrder() != null && queryParameters.getOrder().getColumn().equals("severity")) { Comparator<StatusEntity<T>> comparator = Comparator.comparing(StatusEntity::getStatus); if (queryParameters.getOrder().isDesc()) { comparator = comparator.reversed(); } collect.sort(comparator); collect = subList(collect, queryParameters); } return collect; }
public List<StatusEntity<T>> getStatus(Q query) { final QueryParameters queryParameters = query.getParameters(); final SeverityFilter filter = query.getSeverityFilter(); final CriteriaBuilder criteriaBuilder = getCriteriaBuilder(queryParameters); // The implementors do not know anything about status/severity, // therefore it is not supported to order by severityon dao level. if (isSeverityRelatedQuery(query)) { criteriaBuilder.offset(null); criteriaBuilder.limit(null); // no column "severity" exists, clear it to avoid hibernate complaining about it if (queryParameters.getOrder().getColumn().equals("severity")) { criteriaBuilder.clearOrder(); } } // Query and apply filters List<StatusEntity<T>> collect = findMatching(query, criteriaBuilder); collect = apply(collect, filter); // sort manually if required if (queryParameters.getOrder() != null && queryParameters.getOrder().getColumn().equals("severity")) { Comparator<StatusEntity<T>> comparator = Comparator.comparing(StatusEntity::getStatus); if (queryParameters.getOrder().isDesc()) { comparator = comparator.reversed(); } collect.sort(comparator); collect = subList(collect, queryParameters); } return collect; }