当前使用版本(必须填写清楚,否则不予处理)

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, 但是不起作用

同问,我也是设置了没有用,请教一下您是怎么解决的?