springBootJpa 联表分页查询总数不准的问题
2024-10-20 07:49:37
问题情景:
在联表查询时
```
// 两张表关联查询
Join<Project, Plan> planJoin =
root.join("plans", JoinType.LEFT);
predicates.add(cb.equal(
planJoin.get(ColumnConsts.SUPPLIER_ID), subjectId));
query.groupBy("id");
```
查询结果数据正确,TotalElements数量偏大。 追查源码到统计totalElement,是统计结果集的所有记录
```
private static long executeCountQuery(TypedQuery<Long> query) { Assert.notNull(query, "TypedQuery must not be null!"); List<Long> totals = query.getResultList();
long total = 0L; for (Long element : totals) {
total += element == null ? 0 : element;
} return total;
}
```
解决办法:将
```
query.groupBy("id");
//换成
query.distinct(true);
//去除重复数据即可
```
参考文章:https://blog.csdn.net/huwentao_totti/article/details/81389882
最新文章
- jquery屏幕滚动计算事件总结
- DataNavigatorButtons
- 理解AX InventTrans的几种状态
- Python~Outlook
- Angularjs之表单实例(三)
- Ajax异步调用使用
- SAP_20140304
- 自定义textbox加入左右晃动效果
- nginx配置location [=|~|~*|^~] /uri/ { … }用法
- HW4.24
- 我的cocos2d-x集成sharesdk之旅(转)
- httpclient调用方法
- 2018-2019-2 20165232 《网络对抗技术》 Exp6 信息搜集与漏洞扫描
- Python的优势及应用领域
- java -jar和hadoop jar的区别
- LeetCode算法题-Add Digits(Java实现-3种解法)
- 每天一个linux命令(3):ls命令
- Perl关联数组用法集锦
- Vue.js 和 MVVM 的小细节
- Sharepoint2013 Report Service初探