Skip to content

没有开始分页,SQL仍然经过PageInterceptor并将SQL进行重写导致参数数量匹配不上 #866

@maganto1

Description

@maganto1

问题:

在没有调用startPage相关方法,是否还应该命中PageInterceptor的逻辑?

示例:

查询代码

List<StatAnalysisOnlineUserDTO> result = baseMapper.selectByTimeRangeAndLevelPaths(query);

其中query参数存在字段order by

public class StatAnalysisOnlineUserQuery extends BaseEntity {
    /**
     * 排序
     */
    @Schema(description = "排序 1-按时间升序 不传-按时间倒序")
    private Integer orderBy;
}

在PageInterceptor的142行中调用pageParams.getPage会命中

            //调用方法判断是否需要进行分页,如果不需要,直接返回结果
            if (!dialect.skip(ms, parameter, rowBounds)) {
                  .......
            }

其中命中supportMethodsArguments逻辑会从query获取对应的order by 字段数据并修改sql,报错如图

Image

虽然可以关闭supportMethodsArguments避免这样的操作,但没有调用startPage方法也被命中了分页拦截的逻辑怪怪的

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions