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

3.5.6

例如:

public CustomQueryWrapper<T> eq(SFunction<T, ?> column1, SFunction<T, ?> column2) {
        return this.maybeDo(true, () -> {
            this.appendSqlSegments(this.columnToSqlSegment(column1), SqlKeyword.EQ, this.columnToSqlSegment(column2));
        });
    }

Comment From: refeccd

其实针对这类的问题,我也尝试改成 CustomQueryWrapper 这种形式。 https://github.com/baomidou/mybatis-plus/blob/b72273a9db569e607279a4f14288bafd51fbb6da/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/query/LambdaQueryChainWrapper.java#L35 但是由于这个继承的限制,导致LambdaQueryWrapper里所有链式方法的返回值都是typedThis https://github.com/baomidou/mybatis-plus/blob/b72273a9db569e607279a4f14288bafd51fbb6da/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/conditions/AbstractChainWrapper.java#L46 设想,如果这个 typedThis 可以更灵活一点,那么完全可以在 https://github.com/baomidou/mybatis-plus/blob/b72273a9db569e607279a4f14288bafd51fbb6da/mybatis-plus-extension/src/main/java/com/baomidou/mybatisplus/extension/service/IService.java#L605 这里继承一下,返回自定义的CustomQueryWrapper,这样mp只需要提供常用的方法即可,剩下的部分可以自由扩展。 但是苦于技术太菜,所以一直没想到什么方式,不知道mp团队有没有这方面的想法? @nieqiurong

Comment From: freesme

I think using queryWrapper.apply("column1 = column2") already solves this problem quite well 😄.