【发布时间】:2020-11-13 12:28:25
【问题描述】:
我们正在处理 @ManyToMany 与用户和角色的关系,并希望通过使用 Pageable 接口进行分页以获取具有关联角色的所有用户。它只考虑用户表上的分页记录计数,不考虑角色表记录。但理想情况下,在 RDBMS 中,实际记录数应该是在将用户和角色表之间的连接结果展平之后。
在findAll 方法中使用Pageable 并传递如下页面配置时:
pageno: 0 and pageSize:1
Pageable paging = PageRequest.of(0, 1);
userRepository.findAll(paging);
它给出的结果如下
技术上,当我们展平结果时有 3 条记录,但 pageable 认为这是 1 条记录,这是不正确的。这是预期的行为吗?
有没有一种方法可以在展平查询结果集后获得分页?
【问题讨论】:
-
您正在呼叫
userRepository。就userRepository而言,一个user是one计数。可能您想创建一个UserRole实体和UserRoleRepository,它会为您提供展平记录,并将其计为 3 条记录 -
感谢@KavithakaranKanapathippillai 的快速响应、建议和编辑。将尝试这种方法
标签: spring jpa pagination pageable