mybatis-plus
mybatis-plus copied to clipboard
为什么不加个 同表两列判断的方法呢,感觉可以有
当前使用版本(必填,否则不予处理)
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));
});
}
其实针对这类的问题,我也尝试改成 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
I think using queryWrapper.apply("column1 = column2")
already solves this problem quite well 😄.