org.springframework.data.mongodb.core.query.Query.with()方法的使用及代码示例

x33g5p2x  于2022-01-28 转载在 其他  
字(10.5k)|赞(0)|评价(0)|浏览(462)

本文整理了Java中org.springframework.data.mongodb.core.query.Query.with方法的一些代码示例,展示了Query.with的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Query.with方法的具体详情如下:
包路径:org.springframework.data.mongodb.core.query.Query
类名称:Query
方法名:with

Query.with介绍

[英]Sets the given pagination information on the Query instance. Will transparently set skip and limit as well as applying the Sort instance defined with the Pageable.
[中]设置查询实例上的给定分页信息。将透明地设置skip和limit,并应用使用Pageable定义的排序实例。

代码示例

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. protected Query complete(Criteria criteria, Sort sort) {
  3. Query query = (criteria == null ? new Query() : new Query(criteria)).with(sort);
  4. if (LOG.isDebugEnabled()) {
  5. LOG.debug("Created query " + query);
  6. }
  7. return query;
  8. }

代码示例来源:origin: spring-projects/spring-batch

  1. mongoQuery.with(pageRequest);
  2. query.with(pageRequest);

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public Flux<T> findAll(Sort sort) {
  3. Assert.notNull(sort, "Sort must not be null!");
  4. return findAll(new Query().with(sort));
  5. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public List<T> findAll(Sort sort) {
  3. Assert.notNull(sort, "Sort must not be null!");
  4. return findAll(new Query().with(sort));
  5. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. @SuppressWarnings({ "unchecked", "rawtypes" })
  3. public Object execute(Query query) {
  4. int pageSize = pageable.getPageSize();
  5. // Apply Pageable but tweak limit to peek into next page
  6. Query modifiedQuery = query.with(pageable).limit(pageSize + 1);
  7. List result = find.matching(modifiedQuery).all();
  8. boolean hasNext = result.size() > pageSize;
  9. return new SliceImpl<Object>(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext);
  10. }
  11. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public Page<T> findAll(Pageable pageable) {
  3. Assert.notNull(pageable, "Pageable must not be null!");
  4. Long count = count();
  5. List<T> list = findAll(new Query().with(pageable));
  6. return new PageImpl<T>(list, pageable, count);
  7. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public <S extends T> List<S> findAll(Example<S> example, Sort sort) {
  3. Assert.notNull(example, "Sample must not be null!");
  4. Assert.notNull(sort, "Sort must not be null!");
  5. Query q = new Query(new Criteria().alike(example)).with(sort);
  6. return mongoOperations.find(q, example.getProbeType(), entityInformation.getCollectionName());
  7. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public <S extends T> Flux<S> findAll(Example<S> example, Sort sort) {
  3. Assert.notNull(example, "Sample must not be null!");
  4. Assert.notNull(sort, "Sort must not be null!");
  5. Query query = new Query(new Criteria().alike(example)).with(sort);
  6. return mongoOperations.find(query, example.getProbeType(), entityInformation.getCollectionName());
  7. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. /**
  2. * Sets the given pagination information on the {@link Query} instance. Will transparently set {@code skip} and
  3. * {@code limit} as well as applying the {@link Sort} instance defined with the {@link Pageable}.
  4. *
  5. * @param pageable
  6. * @return
  7. */
  8. public Query with(Pageable pageable) {
  9. if (pageable.isUnpaged()) {
  10. return this;
  11. }
  12. this.limit = pageable.getPageSize();
  13. this.skip = pageable.getOffset();
  14. return with(pageable.getSort());
  15. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public <S extends T> Page<S> findAll(final Example<S> example, Pageable pageable) {
  3. Assert.notNull(example, "Sample must not be null!");
  4. Assert.notNull(pageable, "Pageable must not be null!");
  5. Query q = new Query(new Criteria().alike(example)).with(pageable);
  6. List<S> list = mongoOperations.find(q, example.getProbeType(), entityInformation.getCollectionName());
  7. return PageableExecutionUtils.getPage(list, pageable,
  8. () -> mongoOperations.count(q, example.getProbeType(), entityInformation.getCollectionName()));
  9. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. @Override
  2. public Object execute(Query query) {
  3. int overallLimit = query.getLimit();
  4. TerminatingFind<?> matching = operation.matching(query);
  5. // Apply raw pagination
  6. query.with(pageable);
  7. // Adjust limit if page would exceed the overall limit
  8. if (overallLimit != 0 && pageable.getOffset() + pageable.getPageSize() > overallLimit) {
  9. query.limit((int) (overallLimit - pageable.getOffset()));
  10. }
  11. return PageableExecutionUtils.getPage(matching.all(), pageable, () -> {
  12. long count = matching.count();
  13. return overallLimit != 0 ? Math.min(count, overallLimit) : count;
  14. });
  15. }
  16. }

代码示例来源:origin: spring-projects/spring-batch

  1. @Test
  2. public void testQueryObjectWithIgnoredPageSize() throws Exception {
  3. reader = new MongoItemReader<>();
  4. reader.setTemplate(template);
  5. Query query = new Query()
  6. .with(Sort.by(new Order(Sort.Direction.ASC, "_id")))
  7. .with(PageRequest.of(0, 50));
  8. reader.setQuery(query);
  9. reader.setTargetType(String.class);
  10. reader.afterPropertiesSet();
  11. ArgumentCaptor<Query> queryContainer = ArgumentCaptor.forClass(Query.class);
  12. when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>());
  13. assertFalse(reader.doPageRead().hasNext());
  14. Query actualQuery = queryContainer.getValue();
  15. assertFalse(reader.doPageRead().hasNext());
  16. assertEquals(10, actualQuery.getLimit());
  17. assertEquals(0, actualQuery.getSkip());
  18. }

代码示例来源:origin: spring-projects/spring-batch

  1. @Test
  2. public void testQueryObjectWithPageSize() throws Exception {
  3. reader = new MongoItemReader<>();
  4. reader.setTemplate(template);
  5. Query query = new Query()
  6. .with(Sort.by(new Order(Sort.Direction.ASC, "_id")))
  7. .with(PageRequest.of(30, 50));
  8. reader.setQuery(query);
  9. reader.setTargetType(String.class);
  10. reader.setPageSize(100);
  11. reader.afterPropertiesSet();
  12. ArgumentCaptor<Query> queryContainer = ArgumentCaptor.forClass(Query.class);
  13. when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>());
  14. assertFalse(reader.doPageRead().hasNext());
  15. Query actualQuery = queryContainer.getValue();
  16. assertFalse(reader.doPageRead().hasNext());
  17. assertEquals(100, actualQuery.getLimit());
  18. assertEquals(0, actualQuery.getSkip());
  19. }

代码示例来源:origin: spring-projects/spring-batch

  1. @Test
  2. public void testQueryObject() throws Exception {
  3. reader = new MongoItemReader<>();
  4. reader.setTemplate(template);
  5. Query query = new Query()
  6. .with(Sort.by(new Order(Sort.Direction.ASC, "_id")));
  7. reader.setQuery(query);
  8. reader.setTargetType(String.class);
  9. reader.afterPropertiesSet();
  10. ArgumentCaptor<Query> queryContainer = ArgumentCaptor.forClass(Query.class);
  11. when(template.find(queryContainer.capture(), eq(String.class))).thenReturn(new ArrayList<>());
  12. assertFalse(reader.doPageRead().hasNext());
  13. Query actualQuery = queryContainer.getValue();
  14. assertFalse(reader.doPageRead().hasNext());
  15. assertEquals(10, actualQuery.getLimit());
  16. assertEquals(0, actualQuery.getSkip());
  17. }

代码示例来源:origin: spring-projects/spring-batch

  1. @Test
  2. public void testQueryObjectWithCollection() throws Exception {
  3. reader = new MongoItemReader<>();
  4. reader.setTemplate(template);
  5. Query query = new Query()
  6. .with(Sort.by(new Order(Sort.Direction.ASC, "_id")));
  7. reader.setQuery(query);
  8. reader.setTargetType(String.class);
  9. reader.setCollection("collection");
  10. reader.afterPropertiesSet();
  11. ArgumentCaptor<Query> queryContainer = ArgumentCaptor.forClass(Query.class);
  12. ArgumentCaptor<String> stringContainer = ArgumentCaptor.forClass(String.class);
  13. when(template.find(queryContainer.capture(), eq(String.class), stringContainer.capture())).thenReturn(new ArrayList<>());
  14. assertFalse(reader.doPageRead().hasNext());
  15. Query actualQuery = queryContainer.getValue();
  16. assertFalse(reader.doPageRead().hasNext());
  17. assertEquals(10, actualQuery.getLimit());
  18. assertEquals(0, actualQuery.getSkip());
  19. assertEquals("collection", stringContainer.getValue());
  20. }
  21. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. private ReactiveMongoQueryExecution getExecutionToWrap(MongoParameterAccessor accessor, FindWithQuery<?> operation) {
  2. if (isDeleteQuery()) {
  3. return new DeleteExecution(operations, method);
  4. } else if (method.isGeoNearQuery()) {
  5. return new GeoNearExecution(operations, accessor, method.getReturnType());
  6. } else if (isTailable(method)) {
  7. return (q, t, c) -> operation.matching(q.with(accessor.getPageable())).tail();
  8. } else if (method.isCollectionQuery()) {
  9. return (q, t, c) -> operation.matching(q.with(accessor.getPageable())).all();
  10. } else if (isCountQuery()) {
  11. return (q, t, c) -> operation.matching(q).count();
  12. } else if (isExistsQuery()) {
  13. return (q, t, c) -> operation.matching(q).exists();
  14. } else {
  15. return (q, t, c) -> {
  16. TerminatingFind<?> find = operation.matching(q);
  17. if (isCountQuery()) {
  18. return find.count();
  19. }
  20. return isLimiting() ? find.first() : find.one();
  21. };
  22. }
  23. }

代码示例来源:origin: spring-projects/spring-batch

  1. @Test
  2. public void testAfterPropertiesSetForQueryObject() throws Exception{
  3. reader = new MongoItemReader<>();
  4. reader.setTemplate(template);
  5. reader.setTargetType(String.class);
  6. Query query1 = new Query().with(Sort.by(new Order(Sort.Direction.ASC, "_id")));
  7. reader.setQuery(query1);
  8. reader.afterPropertiesSet();
  9. }

代码示例来源:origin: spring-projects/spring-data-mongodb

  1. private MongoQueryExecution getExecution(ConvertingParameterAccessor accessor, FindWithQuery<?> operation) {
  2. if (isDeleteQuery()) {
  3. return new DeleteExecution(operations, method);
  4. } else if (method.isGeoNearQuery() && method.isPageQuery()) {
  5. return new PagingGeoNearExecution(operation, method, accessor, this);
  6. } else if (method.isGeoNearQuery()) {
  7. return new GeoNearExecution(operation, method, accessor);
  8. } else if (method.isSliceQuery()) {
  9. return new SlicedExecution(operation, accessor.getPageable());
  10. } else if (method.isStreamQuery()) {
  11. return q -> operation.matching(q).stream();
  12. } else if (method.isCollectionQuery()) {
  13. return q -> operation.matching(q.with(accessor.getPageable()).with(accessor.getSort())).all();
  14. } else if (method.isPageQuery()) {
  15. return new PagedExecution(operation, accessor.getPageable());
  16. } else if (isCountQuery()) {
  17. return q -> operation.matching(q).count();
  18. } else if (isExistsQuery()) {
  19. return q -> operation.matching(q).exists();
  20. } else {
  21. return q -> {
  22. TerminatingFind<?> find = operation.matching(q);
  23. return isLimiting() ? find.firstValue() : find.oneValue();
  24. };
  25. }
  26. }

代码示例来源:origin: spring-projects/spring-integration

  1. private static Query groupOrderQuery(Object groupId) {
  2. Sort sort = Sort.by(Sort.Direction.DESC, MessageDocumentFields.LAST_MODIFIED_TIME,
  3. MessageDocumentFields.SEQUENCE);
  4. return groupIdQuery(groupId).with(sort);
  5. }

代码示例来源:origin: org.springframework.data/spring-data-mongodb

  1. @Override
  2. @SuppressWarnings({ "unchecked", "rawtypes" })
  3. public Object execute(Query query) {
  4. int pageSize = pageable.getPageSize();
  5. // Apply Pageable but tweak limit to peek into next page
  6. Query modifiedQuery = query.with(pageable).limit(pageSize + 1);
  7. List result = find.matching(modifiedQuery).all();
  8. boolean hasNext = result.size() > pageSize;
  9. return new SliceImpl<Object>(hasNext ? result.subList(0, pageSize) : result, pageable, hasNext);
  10. }
  11. }

相关文章