springBootJpa 联表分页查询总数不准的问题
问题情景:
在联表查询时
```
// 两张表关联查询
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
springBootJpa 联表分页查询总数不准的问题的更多相关文章
- JdbcTemplate+PageImpl实现多表分页查询
		一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ... 
- sql连表分页查询(存储过程)
		1.平时分页查询都比较多针对一个表的数据 而这个分页查询是针对连表查询的 ,这也是我网上改版别人的sql语句 先在数据库新建一个存储过程 拷贝以下代码 CREATE PROCEDURE [dbo].[ ... 
- Mybatis-plus多表关联查询,多表分页查询
		学习plus真的觉得写代码真的越来越舒服了.昨天开始接触吧,只要学会了多表关联查询.plus就能随意搭配使用了. 关于怎么搭建的就自行了去研究了哦.这里直接进入主题. 我用的是springboot+m ... 
- SQLServer多表联查,多表分页查询
		多表联查: select p.*,s.Sheng , i.Shifrom [dbo].[ProductRecordInfo] --表名 p left join [ShengInfo] s on ... 
- JPA 多表分页查询
		业务场景:大学生毕业后统计毕业去向.学生实体和毕业去向实体一对一关系. 实体: @Entity @Data @Table(name = "t_s_student") public ... 
- solr之高级查询--联表 join查询
		例如有两个业务表:文章表,评论表 . 场景: 一个文章可以由多个人评论. 创建两个core,一个core叫article,一个叫comment.article实例的schema.xml文件中定义几个简 ... 
- .net EF Join 关联表分页查询
		Join中第二个参数和第三个参数即为两张表关联对应的字段 第四个参数new 后面如果不写Model名,系统会自动生成带字段的list类型 IQueryable<Operator> oper ... 
- 【Django】Django 如何实现 如下 联表 JOIN 查询?
		SQL语句: select distinct a.device_hash, sum(b.cmn_merge_count) from (select distinct device_hash from ... 
- Django 如何实现 如下 联表 JOIN 查询?
		SQL语句: select distinct a.device_hash, sum(b.cmn_merge_count) from (select distinct device_hash from ... 
随机推荐
- Linux多线程服务器端编程
			目录 Linux多线程服务器端编程 线程安全的对象生命期管理 对象的销毁线程比较难 线程同步精要 借shared_ptr实现写时拷贝(copy-on-write) 多线程服务器的适用场合与常用编程模型 ... 
- php编程怎么和mysql连接
			php连接mysql的方法: MySQLi - 面向对象 MySQLi - 面向过程 关闭连接 连接在脚本执行完后会自动关闭.你也可以使用以下代码来关闭连接: (MySQLi - 面向对象 MySQL ... 
- 任务调度(02)Spring Schedule
			任务调度(02)Spring Schedule [toc] Spring 3.0 提供两种任务调度方式:一是定时任务调度:二是异步任务调度.这两种任务调度方式都是基于 JUC 实现的,是一种非常轻量级 ... 
- Spring学习(三)--高级装配
			一.Spring profile 在开发软件的时候,有一个很大的挑战就是将应用程序从一个环境迁 移到另外一个环境.开发阶段中,某些环境相关做法可能并不适合迁 移到生产环境中,甚至即便迁移过去也无法正常 ... 
- python安装numpy
			命令介绍: D:\computerSoft\python3.6.4\Scripts>python36 pip3.6.exe install numpy # 通过pip下载对应版本的numpy,然 ... 
- poj2385 Apple Catching (线性dp)
			题目传送门 Apple Catching Apple Catching Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 154 ... 
- Qt 如何使用反射?
			Qt 如何使用反射? c++ 反射 标准库暂时还没有,那我们来看看如何使用 qt 来进行反射. 反射类的案例 1. 通过注册的类型需找 id 进行实例化该类 myclass.h #include &l ... 
- linq函数All,Any,Aggregate说明
			int[] arrInt; arrInt = ,,,,,,}; );// 所有元素都满足条件,false );// 有任一元素满足条件,true , , , , , , , , }; var quer ... 
- CSS中的伪元素选择器
			定义 伪元素选择器:就是有连续两个冒号的选择器,如::first-line::first- letter.::before 和::after E::first-letter文本的第一个单词或字(如中文 ... 
- SELECT - 从表或视图中取出若干行
			SYNOPSIS SELECT [ ALL | DISTINCT [ ON ( expression [, ...] ) ] ] * | expression [ AS output_name ] [ ... 
