java - spring data jpa limit pagesize,如何设置为maxSize

标签 java spring-data-jpa

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

在我的 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,例如

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

参见 PageableDefaults annotation Javadoc.

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

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

参见 PageRequest constructor .我假设 queryForm.getPageSize() 是包装器类型而不是原始类型。否则,如果用户未设置 pageSize(有意用于“搜索所有”请求),您将得到一个零。

更新:

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

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

参见 PageableDefault annotation Javadoc.

关于java - spring data jpa limit pagesize,如何设置为maxSize,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23751193/

相关文章:

java - 如何使用mockito和powermockito模拟JsonArray的迭代器方法

java - 文件中的矩阵

maven - 无法解析类或包 H2

java - Rest Service方法映射【Java Spring】

java - 我可以从 EntityManager 自动分离 SqlResultSetMapping 实体吗?

java - Java 中类文字的类型到底是什么?

java - 具有 ManyToOne 保存操作的 Spring Data JPA 抛出 org.hibernate.PersistentObjectException

java - 如何在@NamedEntityGraph 中仅加载子图中的指定属性

java - 如何在 Spring 中手动启动共享 EntityManager 上的事务?

java - 如何通过分页按任何字段搜索