Browse Source

修复非多选查询错误

zhouhao 6 years ago
parent
commit
d9746fdbb7

+ 9 - 2
hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/src/main/java/org/hswebframework/web/dao/mybatis/mapper/dict/DictInTermTypeMapper.java

@@ -34,13 +34,20 @@ public class DictInTermTypeMapper extends AbstractSqlTermCustomer {
     }
 
     private boolean support(RDBColumnMetaData column) {
+        if(column.getJdbcType()== JDBCType.VARCHAR){
+            return false;
+        }
         Class type = column.getJavaType();
         if (type != null && type.isArray()) {
             type = type.getComponentType();
         }
-        return ((type != null && type.isEnum() && EnumDict.class.isAssignableFrom(type))
+
+        return ((type != null && type.isEnum()
+                && EnumDict.class.isAssignableFrom(type)
+                && column.getJavaType().isArray())
                 ||
-                (column.getProperty(USE_DICT_MASK_FLAG).isTrue() && column.getOptionConverter() != null));
+                (column.getProperty(USE_DICT_MASK_FLAG).isTrue()
+                        && column.getOptionConverter() != null));
     }
 
     @SuppressWarnings("all")

+ 6 - 1
hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/src/main/java/org/hswebframework/web/dao/mybatis/mapper/dict/DictTermTypeMapper.java

@@ -34,11 +34,16 @@ public class DictTermTypeMapper extends AbstractSqlTermCustomer {
     }
 
     private boolean support(RDBColumnMetaData column) {
+        if (column.getJdbcType() == JDBCType.VARCHAR) {
+            return false;
+        }
         Class type = column.getJavaType();
         if (type != null && type.isArray()) {
             type = type.getComponentType();
         }
-        return ((type != null && type.isEnum() && EnumDict.class.isAssignableFrom(type))
+        return ((type != null && type.isEnum()
+                && EnumDict.class.isAssignableFrom(type)
+                && column.getJavaType().isArray())
                 ||
                 (column.getProperty(USE_DICT_MASK_FLAG).isTrue() && column.getOptionConverter() != null));
     }