我有一个返回couchbase中所有文档的方法,结果是一个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
发布于 2017-11-14 20:20:40
我终于找到了怎么做,我张贴了答案,以防它可以帮助任何人在未来。我做到了这一点:
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());https://stackoverflow.com/questions/47291908
复制相似问题