Mysql 如何在jpa和PagingAndSortingRepository中设置每页的限制结果?

Mysql 如何在jpa和PagingAndSortingRepository中设置每页的限制结果?,mysql,spring,hibernate,spring-boot,spring-data-jpa,Mysql,Spring,Hibernate,Spring Boot,Spring Data Jpa,有一个Spring Boot博客项目,需要在主页中显示最新的收藏夹帖子,在数据库中有一个包含帖子的表和一个带有布尔值的列(tinyint)在主页中显示帖子,它定义帖子是否显示在主页中 在java controller get dinamicaly widgets和get the LastFavorites post by each widget中,每个widget都有一个foreach,但每个widget都需要获得一个或多个post,我使用PagingAndSortingRepository和页

有一个Spring Boot博客项目,需要在主页中显示最新的收藏夹帖子,在数据库中有一个包含帖子的表和一个带有布尔值的列(tinyint)在主页中显示帖子,它定义帖子是否显示在主页中

在java controller get dinamicaly widgets和get the LastFavorites post by each widget中,每个widget都有一个foreach,但每个widget都需要获得一个或多个post,我使用PagingAndSortingRepository和页面结果,在控制器调用nextPageable()和next LastFavorite post的同时

如何为存储库中的每个页面设置1个结果?如何使用每页的结果数制作一个dinamicaly函数?示例:当3是dinamicaly值时,调用存储库以从控制器调用逐页获得3个结果

我的界面是:

public interface PostRepository extends PagingAndSortingRepository<PostEntity, Long>{
    Page<PostEntity> findAll(Pageable pageable);
    Page<PostEntity> findByShowInMainPage(Boolean showInMainPage); // <--
}
公共接口PostRepository扩展了分页和排序存储库{
页面findAll(可分页可分页);

pagefindbyshowinmainpage(Boolean showInMainPage);//如果我理解正确,您需要
PageRequest

Page<PostEntity> postEntityPage = findAll(new PageRequest(0, 3));
Page postEntityPage=findAll(新页面请求(0,3));

它将获取第一(0)个页面,页面中有三个
PostEntity

如果您试图从控制器获取分页,只需在控件上添加一个参数作为Pageable。例如

@RequestMapping(value = "{username}", method = RequestMethod.GET, produces = MediaType.TEXT_HTML_VALUE)
    public String entries(@PathVariable(PATH_USERNAME) final String username,
                          final Pageable pageable,
                          final Model model) {
...
这将在控制器上自动为您提供页面和大小的参数。因此URL看起来像/users/myusername?page=1&size=3,并将返回前3个结果。设置page=2将获得下3个结果,依此类推


然后,您可以将pageable变量传递给存储库的findAll方法以获取数据。

模拟一个
限制0,3
但是如果调用下一页返回下三个结果?需要无限的结果,但每个分页只有x个结果,例如,结果中的每一页有3个。@e-info128
PageRequest
的第一个参数是页面编号-0,1,2…感谢对我有用,我使用
newpagerequest(0,items\u per\u page,Sort.Direction.DESC,“created\u at”)
当items\u per\u page为1时,posts的每个小部件调用
postEntity=posts.getContent().get(item\u id);posts.nextPageable();item_id++
。现在每个小部件都有一篇最后喜爱的文章,但不必获取所有文章。谢谢。当您说您正试图从控制器执行此操作时,您是否使用内置的spring功能传递查询参数?/mypage?page=1&size=3需要内部使用,无需可操作的使用。谢谢,但无需通过v的控制值由请求参数决定,需要动态显示由管理员或仅由开发人员确定的特定数量的值。