private static <T, X> Response createResponse(CriteriaBuilder criteriaBuilder, MatchingDelegate<T> matchingDelegate, CountDelegate countDelegate, Function<List<T>, List<X>> transform) { Objects.requireNonNull(criteriaBuilder); Objects.requireNonNull(matchingDelegate); Objects.requireNonNull(countDelegate); Objects.requireNonNull(transform); final Criteria criteria = criteriaBuilder.toCriteria(); final List<T> entities = matchingDelegate.findMatching(criteria); if (entities.isEmpty()) { return Response.noContent().build(); } // Reset any offset/limits and orders in order to count properly criteria.setOrders(new ArrayList<>()); criteria.setOffset(null); criteria.setLimit(null); // build response final List responseBody = transform.apply(entities); final int offset = (criteria.getOffset() == null ? 0 : criteria.getOffset()); final long totalCount = countDelegate.countMatching(criteria); return ResponseUtils.createResponse(responseBody, offset, totalCount); }
private static <T, X> Response createResponse(CriteriaBuilder criteriaBuilder, MatchingDelegate<T> matchingDelegate, CountDelegate countDelegate, Function<List<T>, List<X>> transform) { Objects.requireNonNull(criteriaBuilder); Objects.requireNonNull(matchingDelegate); Objects.requireNonNull(countDelegate); Objects.requireNonNull(transform); final Criteria criteria = criteriaBuilder.toCriteria(); final List<T> entities = matchingDelegate.findMatching(criteria); if (entities.isEmpty()) { return Response.noContent().build(); } // Reset any offset/limits and orders in order to count properly criteria.setOrders(new ArrayList<>()); criteria.setOffset(null); criteria.setLimit(null); // build response final List responseBody = transform.apply(entities); final int offset = (criteria.getOffset() == null ? 0 : criteria.getOffset()); final long totalCount = countDelegate.countMatching(criteria); return ResponseUtils.createResponse(responseBody, offset, totalCount); }
if (criteria.getLimit() != null || criteria.getOffset() != null) { final Criteria idCriteria = m_criteriaConverter.convert(criteria, session); idCriteria.setProjection(Projections.distinct(
if (criteria.getLimit() != null || criteria.getOffset() != null) { final Criteria idCriteria = m_criteriaConverter.convert(criteria, session); idCriteria.setProjection(Projections.distinct(
@Override public final Criteria clone() { Criteria retval = new Criteria(getCriteriaClass()); retval.setAliases(getAliases()); retval.setDistinct(isDistinct()); retval.setFetchTypes(getFetchTypes()); retval.setLimit(getLimit()); retval.setOffset(getOffset()); retval.setOrders(getOrders()); retval.setRestrictions(getRestrictions()); return retval; } }
@Override public final Criteria clone() { Criteria retval = new Criteria(getCriteriaClass()); retval.setAliases(getAliases()); retval.setDistinct(isDistinct()); retval.setFetchTypes(getFetchTypes()); retval.setLimit(getLimit()); retval.setOffset(getOffset()); retval.setOrders(getOrders()); retval.setRestrictions(getRestrictions()); return retval; } }
public void visit(final CriteriaVisitor visitor) { visitor.visitClassAndRootAlias(getCriteriaClass(), getRootAlias()); for (final Order order : getOrders()) { visitor.visitOrder(order); } visitor.visitOrdersFinished(); for (final Alias alias : getAliases()) { visitor.visitAlias(alias); } visitor.visitAliasesFinished(); for (final Fetch fetch : getFetchTypes()) { visitor.visitFetch(fetch); } visitor.visitFetchesFinished(); for (final Restriction restriction : getRestrictions()) { visitor.visitRestriction(restriction); } visitor.visitRestrictionsFinished(); visitor.visitDistinct(isDistinct()); visitor.visitLimit(getLimit()); visitor.visitOffset(getOffset()); }
public void visit(final CriteriaVisitor visitor) { visitor.visitClassAndRootAlias(getCriteriaClass(), getRootAlias()); for (final Order order : getOrders()) { visitor.visitOrder(order); } visitor.visitOrdersFinished(); for (final Alias alias : getAliases()) { visitor.visitAlias(alias); } visitor.visitAliasesFinished(); for (final Fetch fetch : getFetchTypes()) { visitor.visitFetch(fetch); } visitor.visitFetchesFinished(); for (final Restriction restriction : getRestrictions()) { visitor.visitRestriction(restriction); } visitor.visitRestrictionsFinished(); visitor.visitDistinct(isDistinct()); visitor.visitLimit(getLimit()); visitor.visitOffset(getOffset()); }