当前位置: 首页 > 面试题库 >

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

明松
2023-03-14
问题内容

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

在我的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。



 类似资料:
  • 我有一个要求是按可分页和不可分页搜索,

  • 请仔细阅读查询。 我希望动态地在复合sql查询中设置限制。所以我从控制器接收一些输入,服务进行一些计算,然后查询将被命中,但限制将动态地取决于服务中的计算。下面是我的JPARepository: 起初我试过用什么?1和?2但这也是失败的。以下是错误代码: 带有@Param: 这是错误代码吗?1和?2(这在原语(int)和包装器数据类型(Integer)中都进行了尝试。两者都给出了相同的错误): 非

  • 又不想工作,我不知道是怎么回事。 日志包含以下消息: 将项目放在github https://github.com/romanych2021/testjpaspring上

  • 我还向b_spring.xml声明了另一个entityManagetFactory、事务管理器和dataSource。 误差 bean初始化失败;嵌套异常是org.springframework.beans.factory.nosuchbeanDefinitionException:没有定义[javax.persistence.entityManagerFactory]类型的唯一bean:预期的单

  • 问题内容: 我正在试验使用MySQL的SQL的PostgreSQL,我只希望使用这段有效的SQL代码创建一个表: 我得到了错误 我已经在网上进行搜索,但没有找到答案,而且我似乎在PostgreSQL手册中找不到答案。我究竟做错了什么? 我明确地想对可插入“ pk_flat_id”字段中的位数设置限制 问题答案: 我明确地想对可插入“ pk_flat_id”字段中的位数设置限制 您当前的表定义并 没

  • 问题内容: 我正在尝试将HikariCP与Spring一起用于连接池。我正在使用jdbcTempLate和JdbcdaoSupport。 这是我用于数据源的spring配置文件: 但不幸的是,正在生成以下错误消息: 谁能告诉我如何解决这个问题? 问题答案: 你需要在bean配置上编写此结构(这是你的数据源): 这是我的示例,正​​在运行。你只需要将属性放在hibernate.properties上