Skip to content

[错误报告]: MPJLambdaQueryWrapper类的selectIgnore方法获取字段名时多加了一层表别名 #328

@sdghchj

Description

@sdghchj

确认

  • 我的版本是最新版本, 我的版本号与 version 相同, 并且项目里无依赖冲突
  • 我已经在 issue 中搜索过, 确认问题没有被提出过
  • 我已经修改标题, 将标题中的 描述 替换为遇到的问题

当前程序版本

1.5.5

问题描述

MPJLambdaQueryWrapper selectIgnore(SFunction<T, ?>... columns)方法获取到的忽略字段名多了一层t,比如我是忽略t.Name字段,实际添加到成员ignoreColumns里的字段名是t.t.Name。

//AbstractLambdaWrapper.java
protected String columnToString(SFunction<T, ?> column) {
        return this.columnToString(column, true);
}

protected String columnToString(SFunction<T, ?> column, boolean onlyColumn) {
        ColumnCache cache = this.getColumnCache(column);
        return onlyColumn ? cache.getColumn() : cache.getColumnSelect();
}
//MPJLambdaQueryWrapper.java
    @SafeVarargs
    public final MPJLambdaQueryWrapper<T> selectIgnore(SFunction<T, ?>... columns) {
        if (ArrayUtils.isNotEmpty(columns)) {
            for (SFunction<T, ?> s : columns) {
                ignoreColumns.add(alias + StringPool.DOT + columnToString(s));
            }
        }
        return typedThis;
    }

    @Override
    protected String columnToString(SFunction<T, ?> column, boolean onlyColumn) {
        return alias + StringPool.DOT + super.columnToString(column, onlyColumn);
    }

从现在的main分支代码里也能明显看出,多加了一层 ”alias + StringPool.DOT“

详细堆栈日志

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