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

MongoRepository分页请求返回错误数据

巴星华
2023-03-14

我在Spring MongoRepository上有一个简单的分页请求,但MongoRepository显然在某个任意的高页面#之后开始发送不正确的结果。我在这里发帖是想知道我是否遗漏了什么,或者这可能是Spring MongoRepository的一个bug。

在我的测试中,我的测试mongo db中有14个元素,下面的分页请求工作良好(如果数据在那里,则检索数据):PageSize:10,page#:0到1073741823但是下面的PageRequest从我的mongoDB返回10个实体,这是我不期望的:PageSize:10,page#:1073741824

断点是diff对于pageSize的diff组合。如果需要,可以共享。

在我正在使用的库下面:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-mongodb</artifactId>
        <version>1.5.5.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>2.12.5</version>
    </dependency>

存储库定义:

public interface SomeEntityRepository extends MongoRepository<SomeEntity, Integer> {
}
public Page<SomeEntity> getSomeEntitiesByPage(int pageIndex, int paseSize, Map<String, Sort.Direction> sortQuery) {

    Pageable pageableRequest = new PageRequest(pageIndex, pageSize);

        return someEntityRepository.findAll(pageableRequest);

}

共有1个答案

叶衡虑
2023-03-14

这是Spring MongoRepository的一个问题,Jira已经为这个问题提交了文件。MongoRepository正在尝试获取返回类型为int的所需偏移量PageAble.GetOffset(),而当PageNumber*PageSize>Integer.MaxValue时,它将作为负偏移量环绕,导致检索第一页。在这里可以找到这方面的Jira参考

 类似资料:
  • 问题内容: 这工作正常: 这将返回400 Bad Request(只是使用.ajax来支持错误处理的上述jQuery的重新格式)。 问题答案: 我认为您只需要再添加2个选项(和):

  • 我试图使用Gmail API将用户设置应用到Gmail帐户,但它不断返回错误400错误请求。 我可以看到错误代码在Gmail API控制台,它来自我的服务号,所以代码不可能是如此错误,但它让我发疯,只是不能找出什么是错误的。 如果有人能给我指出正确的方向,我会非常感激。

  • 这是我的控制器,它将请求映射到以下url

  • 我试图对我写的rest api执行一个put请求,但它总是返回400-bug请求。 java.io.IO异常:服务器返回HTTP响应代码:400为URL:http://localhost:8000/api/v0/contacts/2sun.net.www.protocol.http.HttpURLConnection.getInputStream(未知来源) 我可以用firefox rest客户端

  • 问题内容: 我有这个应用程序,它可以在本地运行,并且在部署时可以使用.mdf SQL Express数据库文件(通常用于测试目的)。但是,当我将其更改为可与我们的SQL Server 2008一起使用时,该应用程序可以运行,但该服务无法运行。 例如,如果在页面后面的代码中,我有一个按钮可以向表中添加数据,例如: 我的web.config设置为在该服务器上使用模拟,并且一切运行良好。但是,对于我的服

  • 对localhost的Ajax请求返回403错误。然而,当我更改controller requestMethod以获取并在浏览器上打开请求“url”时,它会显示从服务器返回的json数据。我希望使用这些数据填充一个下拉列表。请帮帮我。我正在使用spring security 4.0和spring MVC框架。CSRF未禁用。此外,该url在Spring得到保护。 我在这里查看了相关问题,但没有找到