当前使用版本(必填,否则不予处理)
3.4.2
该问题是如何引起的?(确定最新版也有问题再提!!!)
请问怎么合并两个QueryWrapper的查询条件? 如:现有queryWrapper1、queryWrapper2,怎么把这两个所有条件合并到 queryWrapper3?
重现步骤(如果有就写完整)
报错信息
Comment From: miemieYaho
不支持
Comment From: uyoung
如果只是想合并where条件可以尝试这个办法
java
static <T> QueryWrapper<T> joinWhereSegment(boolean withOr, QueryWrapper<T>... wrappers) {
QueryWrapper<T> query = new QueryWrapper<>();
for (QueryWrapper<T> wrapper : wrappers) {
//注意,这里的or只是为了多一个括号,不是or操作
query.nested(mq -> mq.or().getExpression().getNormal().addAll(wrapper.getExpression().getNormal()));
if (withOr) {
query.or();
}
}
return query;
}
Comment From: hoyo-Sammy
如果只是想合并where条件可以尝试这个办法
java static <T> QueryWrapper<T> joinWhereSegment(boolean withOr, QueryWrapper<T>... wrappers) { QueryWrapper<T> query = new QueryWrapper<>(); for (QueryWrapper<T> wrapper : wrappers) { //注意,这里的or只是为了多一个括号,不是or操作 query.nested(mq -> mq.or().getExpression().getNormal().addAll(wrapper.getExpression().getNormal())); if (withOr) { query.or(); } } return query; }
这个方法尝试过的。只能拼接where条件,不会把条件后的参数带过去