spring data jpa 限制pagesize,如何设置为maxSize [英] spring data jpa limit pagesize, how to set to maxSize

查看:24
本文介绍了spring data jpa 限制pagesize,如何设置为maxSize的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I have one requirement is to search by pageable and non-pageable,

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

and in my Java code, I use spring data jpa Pageable class,

 Pageable pageable = new PageRequest(
                    queryForm.getPageNumber()- 1, queryForm.getPageSize(),Sort.Direction.ASC,"id");  
Page page = repository.fullTextSearch(queryForm.getText(), pageable);

而且我不想改变返回结构,

And I don't want to change the return structure,

那么在不可分页的情况下(搜索全部),如何将pageSize值设置为MAX?

So when non-pageable situation (search all), how to set the pageSize value to MAX ?

推荐答案

结合 Spring MVC 你可以使用 PageableDefaults 注释和 value = Integer.MAX_VALUE like>

In conjunction with Spring MVC you can use PageableDefaults annotation with value = Integer.MAX_VALUE like

public String showUsers(Model model, 
  @PageableDefaults(pageNumber = 0, value = Integer.MAX_VALUE) Pageable pageable) { … }

PageableDefaults 注释 Javadoc.

see PageableDefaults annotation Javadoc.

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

In any other client code you can set second constructor parameter to Integer.MAX_VALUE:

new PageRequest(
    queryForm.getPageNumber()- 1, 
    queryForm.getPageSize() == null ? Integer.MAX_VALUE : queryForm.getPageSize(),
    Sort.Direction.ASC,"id"); 

PageRequest 构造函数.我假设 queryForm.getPageSize() 是一个包装类型而不是一个原始类型.否则,如果用户未设置 pageSize(有意用于搜索全部"请求),则会得到零.

see PageRequest constructor. I assume that queryForm.getPageSize() is a wrapper type not a primitive. Otherwise you get a zero if pageSize wasn't set by the user (intentionally for a "search all" request).

更新:

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

Since Spring Data Commons 1.6 you should use PageableDefault instead of PageableDefaults

public String showUsers(Model model, 
    @PageableDefault(page= 2 ,value = Integer.MAX_VALUE)

PageableDefault 注解 Javadoc.

See PageableDefault annotation Javadoc.

这篇关于spring data jpa 限制pagesize,如何设置为maxSize的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆