@Nullable @Override public <T> T findOne(Query query, Class<T> entityClass, String collectionName) { Assert.notNull(query, "Query must not be null!"); Assert.notNull(entityClass, "EntityClass must not be null!"); Assert.notNull(collectionName, "CollectionName must not be null!"); if (ObjectUtils.isEmpty(query.getSortObject()) && !query.getCollation().isPresent()) { return doFindOne(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass); } else { query.limit(1); List<T> results = find(query, entityClass, collectionName); return results.isEmpty() ? null : results.get(0); } }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object execute(Query query) { int pageSize = pageable.getPageSize(); // Apply Pageable but tweak limit to peek into next page Query modifiedQuery = query.with(pageable).limit(pageSize + 1); List result = find.matching(modifiedQuery).all(); boolean hasNext = result.size() > pageSize; return new SliceImpl<Object>(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); } }
@Override public <S extends T> Mono<S> findOne(Example<S> example) { Assert.notNull(example, "Sample must not be null!"); Query q = new Query(new Criteria().alike(example)); q.limit(2); return mongoOperations.find(q, example.getProbeType(), entityInformation.getCollectionName()).buffer(2) .map(vals -> { if (vals.size() > 1) { throw new IncorrectResultSizeDataAccessException(1); } return vals.iterator().next(); }).next(); }
public <T> Mono<T> findOne(Query query, Class<T> entityClass, String collectionName) { if (ObjectUtils.isEmpty(query.getSortObject())) { return doFindOne(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass, query.getCollation().orElse(null)); } query.limit(1); return find(query, entityClass, collectionName).next(); }
@Override public Object execute(Query query) { int overallLimit = query.getLimit(); TerminatingFind<?> matching = operation.matching(query); // Apply raw pagination query.with(pageable); // Adjust limit if page would exceed the overall limit if (overallLimit != 0 && pageable.getOffset() + pageable.getPageSize() > overallLimit) { query.limit((int) (overallLimit - pageable.getOffset())); } return PageableExecutionUtils.getPage(matching.all(), pageable, () -> { long count = matching.count(); return overallLimit != 0 ? Math.min(count, overallLimit) : count; }); } }
@Override public EndpointProfilesPageDto findByEndpointGroupId(PageLinkDto pageLink) { LOG.debug("Find endpoint profiles by endpoint group id [{}] ", pageLink.getEndpointGroupId()); EndpointProfilesPageDto endpointProfilesPageDto = new EndpointProfilesPageDto(); int lim = Integer.valueOf(pageLink.getLimit()); int offs = Integer.valueOf(pageLink.getOffset()); List<MongoEndpointProfile> mongoEndpointProfileList = find( query(new Criteria() .orOperator(where(EP_GROUP_STATE + "." + ENDPOINT_GROUP_ID) .is(pageLink.getEndpointGroupId()), where(EP_GROUP_STATE + "." + ENDPOINT_GROUP_ID) .is(pageLink.getEndpointGroupId()))) .skip(offs) .limit(lim + 1)); if (mongoEndpointProfileList.size() == (lim + 1)) { String offset = Integer.toString(lim + offs); pageLink.setOffset(offset); mongoEndpointProfileList.remove(lim); } else { pageLink.setNext(DaoConstants.LAST_PAGE_MESSAGE); } endpointProfilesPageDto.setPageLinkDto(pageLink); endpointProfilesPageDto.setEndpointProfiles(convertDtoList(mongoEndpointProfileList)); return endpointProfilesPageDto; }
int start = (currentPage - 1) * pageSize; voCommonPager.setPage(PageHelper.buildPage(query.getPageParameter(), (int) totalCount)); baseQuery.skip(start).limit(pageSize); final List<MongoAdapter> mongoAdapters = mongoTemplate.find(baseQuery, MongoAdapter.class, mongoTableName);
int start = (currentPage - 1) * pageSize; voCommonPager.setPage(PageHelper.buildPage(query.getPageParameter(), (int) totalCount)); baseQuery.skip(start).limit(pageSize); final List<MongoAdapter> mongoAdapters = mongoTemplate.find(baseQuery, MongoAdapter.class, mongoTableName);
query.limit(tree.getMaxResults());
@Override protected Query createQuery(ConvertingParameterAccessor accessor) { MongoQueryCreator creator = new MongoQueryCreator(tree, accessor, context, isGeoNearQuery); Query query = creator.createQuery(); if (tree.isLimiting()) { query.limit(tree.getMaxResults()); } TextCriteria textCriteria = accessor.getFullText(); if (textCriteria != null) { query.addCriteria(textCriteria); } String fieldSpec = getQueryMethod().getFieldSpecification(); if (!StringUtils.hasText(fieldSpec)) { ReturnedType returnedType = processor.withDynamicProjection(accessor).getReturnedType(); if (returnedType.isProjecting()) { returnedType.getInputProperties().forEach(query.fields()::include); } return query; } try { BasicQuery result = new BasicQuery(query.getQueryObject(), Document.parse(fieldSpec)); result.setSortObject(query.getSortObject()); return result; } catch (JSONParseException o_O) { throw new IllegalStateException(String.format("Invalid query or field specification in %s!", getQueryMethod()), o_O); } }
baseQuery.skip(start).limit(pageSize); final List<MongoAdapter> mongoAdapters = mongoTemplate.find(baseQuery, MongoAdapter.class, mongoTableName);
where(EP_GROUP_STATE + "." + ENDPOINT_GROUP_ID) .is(pageLink.getEndpointGroupId()))); query.skip(offs).limit(lim + 1); query.fields() .include(DaoConstants.PROFILE)
@Nullable @Override public <T> T findOne(Query query, Class<T> entityClass, String collectionName) { Assert.notNull(query, "Query must not be null!"); Assert.notNull(entityClass, "EntityClass must not be null!"); Assert.notNull(collectionName, "CollectionName must not be null!"); if (ObjectUtils.isEmpty(query.getSortObject()) && !query.getCollation().isPresent()) { return doFindOne(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass); } else { query.limit(1); List<T> results = find(query, entityClass, collectionName); return results.isEmpty() ? null : results.get(0); } }
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Object execute(Query query) { int pageSize = pageable.getPageSize(); // Apply Pageable but tweak limit to peek into next page Query modifiedQuery = query.with(pageable).limit(pageSize + 1); List result = find.matching(modifiedQuery).all(); boolean hasNext = result.size() > pageSize; return new SliceImpl<Object>(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext); } }
@Override public <S extends T> Mono<S> findOne(Example<S> example) { Assert.notNull(example, "Sample must not be null!"); Query q = new Query(new Criteria().alike(example)); q.limit(2); return mongoOperations.find(q, example.getProbeType(), entityInformation.getCollectionName()).buffer(2) .map(vals -> { if (vals.size() > 1) { throw new IncorrectResultSizeDataAccessException(1); } return vals.iterator().next(); }).next(); }
public <T> Mono<T> findOne(Query query, Class<T> entityClass, String collectionName) { if (ObjectUtils.isEmpty(query.getSortObject())) { return doFindOne(collectionName, query.getQueryObject(), query.getFieldsObject(), entityClass, query.getCollation().orElse(null)); } query.limit(1); return find(query, entityClass, collectionName).next(); }
@Override public Object execute(Query query) { int overallLimit = query.getLimit(); TerminatingFind<?> matching = operation.matching(query); // Apply raw pagination query.with(pageable); // Adjust limit if page would exceed the overall limit if (overallLimit != 0 && pageable.getOffset() + pageable.getPageSize() > overallLimit) { query.limit((int) (overallLimit - pageable.getOffset())); } return PageableExecutionUtils.getPage(matching.all(), pageable, () -> { long count = matching.count(); return overallLimit != 0 ? Math.min(count, overallLimit) : count; }); } }
query.limit(tree.getMaxResults());
@Override protected Query createQuery(ConvertingParameterAccessor accessor) { MongoQueryCreator creator = new MongoQueryCreator(tree, accessor, context, isGeoNearQuery); Query query = creator.createQuery(); if (tree.isLimiting()) { query.limit(tree.getMaxResults()); } TextCriteria textCriteria = accessor.getFullText(); if (textCriteria != null) { query.addCriteria(textCriteria); } String fieldSpec = getQueryMethod().getFieldSpecification(); if (!StringUtils.hasText(fieldSpec)) { ReturnedType returnedType = processor.withDynamicProjection(accessor).getReturnedType(); if (returnedType.isProjecting()) { returnedType.getInputProperties().forEach(query.fields()::include); } return query; } try { BasicQuery result = new BasicQuery(query.getQueryObject(), Document.parse(fieldSpec)); result.setSortObject(query.getSortObject()); return result; } catch (JSONParseException o_O) { throw new IllegalStateException(String.format("Invalid query or field specification in %s!", getQueryMethod()), o_O); } }
@Override public int findMaxPortalPageOrder() { Query query = new Query(); query.limit(1); query.with(new Sort(Sort.Direction.DESC, "order")); query.addCriteria(where("api").exists(false)); PageMongo page = mongoTemplate.findOne(query, PageMongo.class); return (page != null) ? page.getOrder() : 0; }