如何在Spring Mvc Jpa中将enity对象的List转换为Page对象?

bri*_*ck7 29 java pagination spring-mvc spring-data

我有一个List实体.如何Page使用Spring MVC 4和Spring Data JPA 将其转换为Object?

小智 61

有一个Page实现:

final Page<Something> page = new PageImpl<>(theListOfSomething);
Run Code Online (Sandbox Code Playgroud)

  • 它不会将它们分成几页,而是将所有项目归为一页 (2认同)

Meh*_*lik 24

还有一个构造函数:

Page<FOO> page = new PageImpl<>(listOfsomething, pageable, listOfsomething.size());
Run Code Online (Sandbox Code Playgroud)

  • 以下是如何创建`pageable`对象:`Pageable pageable = PageRequest.of(pageNumber,size);`注意`pageNumber`是*从零开始*并且`Pageable`和`PageRequest`是从`org导入的.springframework.data.domain`.有关详细信息,请参阅[可分页文档](https://docs.spring.io/spring-data/commons/docs/current/api/org/springframework/data/domain/Pageable.html) (3认同)

Gri*_*ost 7

我认为您还需要获取正确的页面内容。


PageRequest pageRequest = PageRequest.of(offset, limit);

List<Product> products = getProducts();

int total = products.size();
int start = toIntExact(pageRequest.getOffset());
int end = Math.min((start + pageRequest.getPageSize()), total);

List<Product> output = new ArrayList<>();

if (start <= end) {
    output = products.subList(start, end);
}

return new PageImpl<>(
    output,
    pageRequest,
    total
);
Run Code Online (Sandbox Code Playgroud)