Browse Source

修复查询条件错误

zhouhao 6 years ago
parent
commit
430161c560

+ 13 - 11
hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/src/main/java/org/hswebframework/web/dao/mybatis/mapper/TreeStructureSqlTermCustomizer.java

@@ -36,15 +36,17 @@ public abstract class TreeStructureSqlTermCustomizer extends AbstractSqlTermCust
     public SqlAppender accept(String wherePrefix, Term term, RDBColumnMetaData column, String tableAlias) {
         ChangedTermValue termValue = createChangedTermValue(term);
         Dialect dialect = column.getTableMetaData().getDatabaseMetaData().getDialect();
-
-        List<Object> value = BoostTermTypeMapper.convertList(column, termValue.getOld());
-
-        List<String> paths = getTreePathByTerm(value)
-                .stream()
-                .map(path -> path.concat("%"))
-                .collect(Collectors.toList());
-
-        termValue.setValue(paths);
+        List<String> paths;
+        if (termValue.getOld() == termValue.getValue()) {
+            List<Object> value = BoostTermTypeMapper.convertList(column, termValue.getOld());
+            paths = getTreePathByTerm(value)
+                    .stream()
+                    .map(path -> path.concat("%"))
+                    .collect(Collectors.toList());
+            termValue.setValue(paths);
+        } else {
+            paths = ((List) termValue.getValue());
+        }
 
         SqlAppender termCondition = new SqlAppender();
 
@@ -67,9 +69,9 @@ public abstract class TreeStructureSqlTermCustomizer extends AbstractSqlTermCust
                 } else {
                     concat = function.apply(SqlFunction.Param.of(RenderPhase.where, Arrays.asList("tmp.path", "'%'")));
                 }
-                termCondition.add("#{", wherePrefix, ".value[", i, "]}", " like ", concat);
+                termCondition.add("#{", wherePrefix, ".value.value[", i, "]}", " like ", concat);
             } else {
-                termCondition.add("tmp.path like #{", wherePrefix, ".value[", i, "]}");
+                termCondition.add("tmp.path like #{", wherePrefix, ".value.value[", i, "]}");
             }
         }
         if (len > 0) {