从Iterable转换为Page Object

时间:2017-11-14 17:31:12

标签: java spring couchbase

我有一个方法可以返回在couchbase repo中找到的所有文件,结果是一个Page<MyObject>对象,这很好:

...
import org.springframework.data.domain.Page;

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

我还有另一种方法可以返回Iterable<MyObject>,如下所示。该方法工作正常,从couchbase检索的结果是可以的。

...
  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

1 个答案:

答案 0 :(得分:1)

我终于找到了如何做到这一点,我发布了答案,以防将来可以帮助任何人。我通过这样做实现了它:

C