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_VALUE
like
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