spring数据jpa限制pagesize,如何设置为maxSize

我有一个要求是按可分页和不可分页进行搜索,

在我的Java代码中,我使用spring data jpa Pageable类,

 Pageable pageable = new PageRequest(

queryForm.getPageNumber()- 1, queryForm.getPageSize(),Sort.Direction.ASC,"id");

Page page = repository.fullTextSearch(queryForm.getText(), pageable);

而且我不想更改退货结构,

因此,当出现无法分页的情况(全部搜索)时,如何将pageSize值设置为MAX?

回答:

与Spring MVC结合使用时,可以将PageableDefaults注解与value = Integer.MAX_VALUElike

public String showUsers(Model model, 

@PageableDefaults(pageNumber = 0, value = Integer.MAX_VALUE) Pageable pageable) { … }

请参见PageableDefaults批注

Javadoc。

在任何其他客户端代码中,您可以将第二个构造函数参数设置为Integer.MAX_VALUE

new PageRequest(

queryForm.getPageNumber()- 1,

queryForm.getPageSize() == null ? Integer.MAX_VALUE : queryForm.getPageSize(),

Sort.Direction.ASC,"id");

请参见PageRequest构造函数。我假设这queryForm.getPageSize()是包装类型,而不是原始类型。否则,如果用户未设置pageSize(故意用于“全部搜索”请求),则得到零。

更新:

从Spring Data Commons 1.6开始,您应该使用PageableDefault而不是PageableDefaults

public String showUsers(Model model, 

@PageableDefault(page= 2 ,value = Integer.MAX_VALUE)

请参见PageableDefault批注

Javadoc。

以上是 spring数据jpa限制pagesize,如何设置为maxSize 的全部内容, 来源链接: utcz.com/qa/432935.html

回到顶部