Spring Data PageRequest不返回指定的计数

时间:2015-04-23 10:33:45

标签: java hibernate jpa spring-data

我正在使用弹簧数据的Pageable来限制记录提取。我在数据库中有超过500个条目,但我想只获取5但它没有正确返回。通常它返回2,3或4条记录(每次返回少于5条记录,但我在数据库中有500条)。所以请帮助我在下面给出的服务类和存储库代码

服务代码:

import numpy

with open("myfile.fa","rt") as infile:
    matrix =  numpy.matrix([list(line.strip()) for line in infile.readlines()])
    print matrix

存储库代码:

    public List<Client> listAll() {
        Pageable pageable = new PageRequest(0,5);
        return (List<Client>) clientRepository.getAllClient(pageable);
       }

1 个答案:

答案 0 :(得分:1)

此处的问题是您为关联指定的JOIN Fetch选项的结果。

如果您考虑通过此语句从DB返回的结果集,那么它可能包含每个用户的多个记录,例如结果集中的所有5条记录都来自客户x,如果他有例如5个办事处。 JPA层中的后处理然后将其过滤为1条记录,因此您只能在应用程序中看到1条记录。

删除JOIN fetch子句以验证是否是这种情况。如果是这样,您将需要查看为查询指定自定义countQuery(这实际上将镜像您的主查询,但只是返回计数):

http://codingexplained.com/coding/java/spring-framework/fetch-query-not-working-spring-data-jpa-pageable