Bläddra i källkod

修复空指针异常

zhou-hao 7 år sedan
förälder
incheckning
efb86a33f7

+ 5 - 1
hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/src/main/java/org/hswebframework/web/dao/mybatis/mapper/EnumDicInTermTypeMapper.java

@@ -33,6 +33,9 @@ public abstract class EnumDicInTermTypeMapper implements TermTypeMapper {
     @Override
     public SqlAppender accept(String wherePrefix, Term term, RDBColumnMetaData column, String tableAlias) {
         Class type = column.getJavaType();
+        if(type==null){
+            return buildNotSupport(wherePrefix,term,column,tableAlias);
+        }
         Object value = term.getValue();
         if (type.isArray()) {
             Class componentType = type.getComponentType();
@@ -66,8 +69,9 @@ public abstract class EnumDicInTermTypeMapper implements TermTypeMapper {
     protected SqlAppender buildNotSupport(String wherePrefix, Term term, RDBColumnMetaData column, String tableAlias) {
         List<Object> values = param2list(term.getValue());
         term.setValue(values);
+        String columnName = dialect.buildColumnName(tableAlias, column.getName());
         SqlAppender appender = new SqlAppender();
-        appender.add(dialect.buildColumnName(tableAlias, column.getName()), not ? " NOT" : " ").add("IN(");
+        appender.add(columnName, not ? " NOT" : " ").add("IN(");
         for (int i = 0; i < values.size(); i++) {
             appender.add("#{", wherePrefix, ".value[", i, "]}", ",");
         }

+ 3 - 0
hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/src/main/java/org/hswebframework/web/dao/mybatis/mapper/EnumDicTermTypeMapper.java

@@ -30,6 +30,9 @@ public class EnumDicTermTypeMapper implements TermTypeMapper {
     @Override
     public SqlAppender accept(String wherePrefix, Term term, RDBColumnMetaData column, String tableAlias) {
         Class type = column.getJavaType();
+        if(type==null){
+            return build(wherePrefix,term,column,tableAlias);
+        }
         Object value = term.getValue();
         if (type.isArray()) {
             Class componentType = type.getComponentType();

+ 2 - 2
hsweb-commons/hsweb-commons-dao/hsweb-commons-dao-mybatis/src/test/java/org/hswebframework/web/dao/crud/TestCrud.java

@@ -50,8 +50,8 @@ public class TestCrud extends AbstractTransactionalJUnit4SpringContextTests {
         Assert.assertNotNull(entity.getId());
 
         QueryParamEntity query = new QueryParamEntity();
-
-        query.where("dataTypes", "ain",Arrays.asList(DataType.TYPE4, DataType.TYPE2));
+        //any in
+        query.where("dataTypes",  Arrays.asList(DataType.TYPE3, DataType.TYPE1));
 
         List<TestEntity> entities = testDao.query(query);