首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将Iterable对象转换为Page对象

将Iterable对象转换为Page对象
EN

Stack Overflow用户
提问于 2017-11-14 17:31:11
回答 1查看 1.6K关注 0票数 1

我有一个返回couchbase中所有文档的方法,结果是一个Page<MyObject>对象,它很好:

代码语言:javascript
复制
...
import org.springframework.data.domain.Page;

  Page<MyObject> myObjects = myRepo
      .findAll(new PageRequest(page == null ? 0 : page, size));
...

我还有另一个方法,它返回一个Iterable<MyObject>,如下所示。该方法工作良好,从couchbase检索的结果良好。

代码语言:javascript
复制
...
  Bucket myBucket = myRepo.getCouchbaseOperations().getCouchbaseBucket();
  PrefixQuery field = SearchQuery.prefix(searchParameter);

  SearchQueryResult searchQueryResult = myBucket
    .query(new SearchQuery("text-search", field)
    .fields("name").explain());

  List <String> idList = new ArrayList<>();
  for (SearchQueryRow searchQueryRow : searchQueryResult.hits()) {
    idList.add(searchQueryRow.id());
  }

  Iterable<MyObject> myObjects = myRepo.findAll(idList);
...

我的问题是:如何将Iterable<MyObject> myObjects转换为Page<MyObject> myObjects

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-14 20:20:40

我终于找到了怎么做,我张贴了答案,以防它可以帮助任何人在未来。我做到了这一点:

代码语言:javascript
复制
Iterable<MyObject> myObjects = myRepo.findAll(idList);
List<MyObject> myObjectsList = IteratorUtils.toList(myObjects.iterator());
Page<MyObject> myObjectsPage = new PageImpl<MyObject>(
                                     myObjectsList,
                                     new PageRequest(page, size), 
                                     myObjectsList.size());
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47291908

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档