From 30d2366d51e7d3f3bfdb4652f9d3a07a531d907b Mon Sep 17 00:00:00 2001
From: fengxiang <110431245@qq.com>
Date: Sat, 23 Jun 2018 11:10:16 +0800
Subject: [PATCH] api 更新

---
 src/main/java/com/moral/common/util/ExampleUtil.java |   27 +++++++++++++++------------
 1 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/moral/common/util/ExampleUtil.java b/src/main/java/com/moral/common/util/ExampleUtil.java
index f395cba..1852f44 100644
--- a/src/main/java/com/moral/common/util/ExampleUtil.java
+++ b/src/main/java/com/moral/common/util/ExampleUtil.java
@@ -19,17 +19,22 @@
     private final static String CRITERIA_SPLIT = "\\|\\|\\|";
     private final static String CONDITION_SPLIT = "\\|\\|";
     private static Map<String, Method> criteriaMethodMap = null;
-    private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException {
+    private static void setOrderByClause(Example example,String orderByClause) throws UnsupportedEncodingException, NoSuchFieldException {
            orderByClause = URLDecoder.decode(orderByClause,"UTF-8");
            String[] orderBys = orderByClause.split(CRITERIA_SPLIT);
            for(String orderBy : orderBys){
                String[] items = orderBy.split(CONDITION_SPLIT);
-               String property = items[0];
-               String sort = items[1];
-               if("asc".equals(sort)){
-                   example.orderBy(property).asc();
-               }else{
-                   example.orderBy(property).desc();
+               if(items.length == 2){
+                   String property = items[0];
+                   String sort = items[1];
+                   if(isPropertyOfClass(example.getEntityClass(),property)){
+
+                       if("asc".equals(sort)){
+                           example.orderBy(property).asc();
+                       }else{
+                           example.orderBy(property).desc();
+                       }
+                   }
                }
            }
     }
@@ -47,7 +52,9 @@
             if (!StringUtils.isNullOrEmpty(params) && params.startsWith("or|")) {
                 String[] criteria = params.trim().split(OR_SPLIT);
                 for (String criterion : criteria) {
-                    Example.Criteria criteriaOfExample = null;
+                    // criterion���null���""������
+                    if(StringUtils.isNullOrEmpty(criterion)) { continue;};
+                    Example.Criteria criteriaOfExample = example.or();
                     if (!StringUtils.isNullOrEmpty(criterion)) {
                         String[] conditions = criterion.trim().split(CRITERIA_SPLIT);
                         for (String condition : conditions) {
@@ -65,10 +72,6 @@
                                             for (int index = 2; index < conditionItems.length; index++) {
                                                 values.add(conditionItems[index]);
                                             }
-                                        }
-                                        //��������������������������������� or ���������
-                                        if(criteriaOfExample == null){
-                                            criteriaOfExample = example.or();
                                         }
                                         invokeMethod(criteriaOfExample,method,propertyName,values);
                                     }

--
Gitblit v1.8.0