From 4dd46bb7e6ec3cdd62e13cfea817dd7b00c1286d Mon Sep 17 00:00:00 2001 From: yulichang <570810310@qq.com> Date: Fri, 19 Nov 2021 17:46:13 +0800 Subject: [PATCH] =?UTF-8?q?=E5=85=BC=E5=AE=B9=E5=90=84=E7=89=88=E6=9C=ACMP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../yulichang/base/mapper/MPJDeepMapper.java | 26 +++++++++++++------ .../query/MPJLambdaQueryWrapper.java | 4 +-- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/github/yulichang/base/mapper/MPJDeepMapper.java b/src/main/java/com/github/yulichang/base/mapper/MPJDeepMapper.java index c1e5479..62ee2c0 100644 --- a/src/main/java/com/github/yulichang/base/mapper/MPJDeepMapper.java +++ b/src/main/java/com/github/yulichang/base/mapper/MPJDeepMapper.java @@ -474,11 +474,11 @@ public interface MPJDeepMapper extends BaseMapper { if (fieldInfo.isMappingEntity()) { if (fieldInfo.isFieldIsMap()) { list = ((List>) joinList).stream().filter(j -> - j.get(fieldInfo.getJoinMapKey()).equals(t.get(fieldInfo.getThisMapKey()))) + j.get(fieldInfo.getJoinMapKey()).equals(t.get(fieldInfo.getThisMapKey()))) .collect(Collectors.toList()); } else { list = joinList.stream().filter(j -> - fieldInfo.joinFieldGet(j).equals(t.get(fieldInfo.getThisMapKey()))) + fieldInfo.joinFieldGet(j).equals(t.get(fieldInfo.getThisMapKey()))) .collect(Collectors.toList()); } } @@ -501,13 +501,23 @@ public interface MPJDeepMapper extends BaseMapper { infoWrapper.getConditionList().forEach(c -> wrapper.addCondition(true, c.getColumn(), c.getKeyword(), c.getVal())); } - wrapper.eq(SqlKeyword.EQ == keyword, column, val) - .first(infoWrapper.isHasFirst(), infoWrapper.getFirst()) - .orderByAsc(infoWrapper.isHasOrderByAsc(), infoWrapper.getOrderByAsc()) - .orderByDesc(infoWrapper.isHasOrderByDesc(), infoWrapper.getOrderByDesc()) - .last(infoWrapper.isHasLast(), infoWrapper.getLast()); + wrapper.eq(SqlKeyword.EQ == keyword, column, val); + //此处不用链式调用,提高效率 + if (infoWrapper.isHasFirst()) { + wrapper.first(infoWrapper.getFirst()); + } + if (infoWrapper.isHasOrderByAsc()) { + //mybatis plus 3.4.3 之后支持数组,但之前版本仅支持可变参数,为了兼容,多个循环处理 + infoWrapper.getOrderByAsc().forEach(wrapper::orderByAsc); + } + if (infoWrapper.isHasOrderByDesc()) { + //mybatis plus 3.4.3 之后支持数组,但之前版本仅支持可变参数,为了兼容,多个循环处理 + infoWrapper.getOrderByAsc().forEach(wrapper::orderByDesc); + } + if (infoWrapper.isHasLast()) { + wrapper.last(infoWrapper.getLast()); + } if (SqlKeyword.IN == keyword) { - //由于Java发放调用机制 无法使用链式 wrapper.in(column, (List) val); } if (infoWrapper.isHasSelect()) { diff --git a/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java b/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java index 22f355f..3243e32 100644 --- a/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java +++ b/src/main/java/com/github/yulichang/query/MPJLambdaQueryWrapper.java @@ -33,7 +33,7 @@ import java.util.stream.Collectors; * @author yulichang */ @Deprecated -@SuppressWarnings({"DeprecatedIsStillUsed", "unused"}) +@SuppressWarnings("unused") public class MPJLambdaQueryWrapper extends AbstractLambdaWrapper> implements Query, T, SFunction>, MPJJoin> { @@ -130,7 +130,7 @@ public class MPJLambdaQueryWrapper extends AbstractLambdaWrapper selectIgnore(SFunction... columns) { if (ArrayUtils.isNotEmpty(columns)) { for (SFunction s : columns) { - ignoreColumns.add(Constant.TABLE_ALIAS + StringPool.DOT + getColumnCache(s).getColumn()); + ignoreColumns.add(Constant.TABLE_ALIAS + StringPool.DOT + columnToString(s)); } } return typedThis;