From aa43bc40f32bb52f2041579a7ca83b02539a04dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E5=A4=A7=E5=90=89?= <171049930@qq.com> Date: Mon, 10 Aug 2020 10:51:16 +0800 Subject: [PATCH] =?UTF-8?q?update=20Criteria=E5=8F=82=E6=95=B0=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E7=9A=84=E6=97=B6=E5=80=99=E9=9C=80=E8=A6=81=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0isValid()=E5=88=A4=E6=96=AD=20Criteria=E6=A3=80?= =?UTF-8?q?=E6=9F=A5=E7=9A=84=E6=97=B6=E5=80=99=E9=9C=80=E8=A6=81=E9=AA=8C?= =?UTF-8?q?=E8=AF=81=E4=B8=8BCriteria.isValid()=EF=BC=8C=E9=83=A8=E5=88=86?= =?UTF-8?q?Criteria=E8=99=BD=E7=84=B6=E6=9C=89=EF=BC=8C=E4=BD=86=E6=98=AF?= =?UTF-8?q?=E4=B8=8D=E4=BC=9A=E7=94=9F=E6=88=90WHERE=E6=9D=A1=E4=BB=B6=20?= =?UTF-8?q?=E5=8F=82=E8=80=83SqlHelper.exampleWhereClause()=20\n"=20+=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20"=20=20=20=20\n"=20+=20=20=20=20=20=20=20=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20"=20=20=20=20=20=20${@tk.mybatis.map?= =?UTF-8?q?per.util.OGNL@andOr(criteria)}"=20+?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/tk/mybatis/mapper/util/OGNL.java | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/tk/mybatis/mapper/util/OGNL.java b/core/src/main/java/tk/mybatis/mapper/util/OGNL.java index 6100f98..d4ed9df 100644 --- a/core/src/main/java/tk/mybatis/mapper/util/OGNL.java +++ b/core/src/main/java/tk/mybatis/mapper/util/OGNL.java @@ -114,8 +114,7 @@ public abstract class OGNL { if (parameter != null) { try { if (parameter instanceof Example) { - List criteriaList = ((Example) parameter).getOredCriteria(); - if (criteriaList != null && criteriaList.size() > 0) { + if (hasValidCriteria((Example) parameter)) { return true; } } else { @@ -250,4 +249,21 @@ public abstract class OGNL { return result; } + /** + * 检查example是否至少有一个valid的Criteria + * @param example + * @return + */ + private static boolean hasValidCriteria(Example example) { + if (example == null || example.getOredCriteria() == null) { + return false; + } + for (Example.Criteria oredCriteria : example.getOredCriteria()) { + if (oredCriteria.isValid()) { + return true; + } + } + return false; + } + } -- Gitee