当前使用版本(必须填写清楚,否则不予处理)
3.2.0
该问题是怎么引起的?(最新版上已修复的会直接close掉)
多表关联查询时(left join),实际查出的数据条数是join之后的条数,这些数据没有折叠,导致分页结果出错,请问这个有什么解决方案吗?
重现步骤
resultMap如下:
`
<resultMap id="BaseResultMap" type="com.qutsmart.qutjyw.entity.JobInfo">
<id column="id" property="id" />
<result column="companyId" property="companyId" />
<result column="title" property="title" />
<result column="jobType" property="jobType" />
<result column="peopleCount" property="peopleCount" />
<result column="jobDescription" property="jobDescription" />
<result column="jobRequire" property="jobRequire" />
<result column="jobLocation" property="jobLocation" />
<result column="salaryMax" property="salaryMax" />
<association property="company" javaType="com.qutsmart.qutjyw.entity.Company">
<result column="company.name" property="gsmc" />
<result column="company.sshy" property="sshy" />
<result column="company.lnsize" property="lnsize" />
<result column="company.gsjj" property="gsjj" />
</association>
<collection property="professionals" ofType="com.qutsmart.qutjyw.entity.JobInfoToZy">
<result column="xyName" property="xyName" />
<result column="zyName" property="zyName" />
<result column="xyShortName" property="xyShortName" />
<result column="zyShortName" property="zyShortName" />
</collection>
</resultMap>
`
报错信息
无
Comment From: miemieYaho
@Bean
public PaginationInterceptor paginationInterceptor() {
// 开启 count 的 join 优化,只针对 left join !!!
return new PaginationInterceptor().setCountSqlParser(new JsqlParserCountOptimize(true));
}
还不行就自己进行count
Comment From: VanMesure
java @Bean public PaginationInterceptor paginationInterceptor() { // 开启 count 的 join 优化,只针对 left join !!! return new PaginationInterceptor().setCountSqlParser(new JsqlParserCountOptimize(true)); }还不行就自己进行count
不好意思我刚刚初学这一块不大懂, 请问自己进行count指的是什么意思?我试着写了 page.setSearchCount(false); 然后自己设置total, 但是不起作用
Comment From: miemieYaho
看源码page.isSearchCount 的内部逻辑判断
Comment From: chenbihao
java @Bean public PaginationInterceptor paginationInterceptor() { // 开启 count 的 join 优化,只针对 left join !!! return new PaginationInterceptor().setCountSqlParser(new JsqlParserCountOptimize(true)); }还不行就自己进行count
不好意思我刚刚初学这一块不大懂, 请问自己进行count指的是什么意思?我试着写了 page.setSearchCount(false); 然后自己设置total, 但是不起作用
同问,我也是设置了没有用,请教一下您是怎么解决的?