当前位置: 首页 > 知识库问答 >
问题:

使用Spring数据分页

郤立果
2023-03-14

我有一个类,它返回一个<代码>列表

 List<UserObject> objectList = UserObjectData.getObjectArray();

在我的存储库中,我有一个可分页对象,它应该从第0页开始每页返回2个项目。它具有以下属性:

  System.out.println(pageable.getPageSize());  // returns '2'
  System.out.println(pageable.getOffset());  // returns '0'
  System.out.println(pageable.getPageNumber());  // returns '0'

然后我创建一个页面

  Page<UserObject> theObjects = new PageImpl<UserObject>(objectList, pageable, objectList.size());

... 这就是回归的原因:

  System.out.println(theObjects.getSize());  // returns '2'
  System.out.println(theObjects.getNumber());  // returns '0'
  System.out.println(theObjects.getNumberOfElements());  // returns '184'
  System.out.println(theObjects.getTotalElements());  // returns '184'
  System.out.println(theObjects.getTotalPages());  // returns '92'

我通过页面

上面的代码看起来是否正确;尤其是new PageImpl

编辑:以下是完整的代码:

@RestController
public class UserController {
  private UserObjectService service;
  NewUserRepository newUserRepository;

  @RequestMapping(value = "getObjects", method = RequestMethod.GET)
  public Page<UserObject> getObjects(@RequestParam int page, @RequestParam int size) {
    Pageable pageable = new PageRequest(page,size);
    newUserRepository = new NewUserRepository();
    Page<UserObject> newPageResult = newUserRepository.findAll(pageable);
    return newPageResult;
}


public class NewUserRepository implements PagingAndSortingRepository<UserObject, Long> {
  public Page<UserObject> findAll(Pageable pageable) {
    List<UserObject> objectList = UserObjectData.getObjectArray(); // I can verify this contains 184 items
        Page<UserObject> theObjects = new PageImpl<UserObject>(objectList, pageable, objectList.size());
        return theObjects;
}

共有1个答案

陈野
2023-03-14

将页面对象创建更改为:

Page<UserObject> theObjects = new PageImpl<UserObject>(objectList, pageable, (pageable.getOffset() + pageable.getPageSize()));
 类似资料:
  • 我有一个简单的JpaRepository和一个finder,它返回按名为“number”的属性降序排列的记录。“number”属性也是我的实体的@Id。这很好,但是有数千条记录,所以我想返回一个页面而不是列表。 如果我将查找器更改为以下内容,则排序不再起作用。我尝试过使用可分页参数的排序功能,但不起作用。还删除了OrderByNumberDesc,但结果相同。 EDIT-添加控制器方法 以下是我的

  • 我想用Spring Data Mongo实现分页。有很多教程和文档建议使用PagingAndSorting Repository,如下所示: 因此,因为PagingAndSorting Repository提供了用于分页查询的api,我可以像这样使用它: 我的问题是这里的findAll方法实际上是在哪里实现的?我需要自己编写它的实现吗?实现StoryRepo的StoryRepoImpl需要实现这个

  • (授权已经在存储库中使用完成)

  • 我得到了存储库代码: 当我在该查询上运行测试时,我得到了以下Hibernate警告:

  • 我有一个spring boot应用程序,我正在尝试使用spring数据cassandra连接到cassandra数据库。下面是我的文件。 样品pp.java CassandraDataSourceConfig。JAVA 属性文件 下面是我尝试使用嵌入式tomcat服务器启动应用程序时遇到的异常(mvn spring boot:run)。应用程序无法加载无法自动连接字段的投诉:private jav

  • 我正在寻找一个选项来执行Redis BITOP使用Spring redistemplate。我试着在网上搜索一个例子,但找不到任何类似的东西。我能够从JedisStringCommands类获得bitOp函数,但不确定如何使用它。