diff --git a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java index 57e08e73..5cfef43d 100644 --- a/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java +++ b/orm/src/main/java/com/zfoo/orm/manager/OrmManager.java @@ -543,9 +543,9 @@ public class OrmManager implements IOrmManager { var keyType = types[0]; var valueType = types[1]; -// if (!String.class.isAssignableFrom((Class) keyType)) { -// throw new RunException("[class:{}] type declaration is incorrect, and the key type of the Map must be the String type", clazz.getCanonicalName()); -// } + if (!ClassUtils.isBaseType((Class) keyType)) { + throw new RunException("[class:{}] type declaration is incorrect, and the key type of the Map must be the Base type", clazz.getCanonicalName()); + } checkSubEntity(clazz, valueType); } else if (ObjectId.class.isAssignableFrom(fieldType)) { @@ -574,9 +574,9 @@ public class OrmManager implements IOrmManager { var types = ((ParameterizedType) type).getActualTypeArguments(); var keyType = types[0]; var valueType = types[1]; - if (!String.class.isAssignableFrom((Class) keyType)) { + if (!ClassUtils.isBaseType((Class) keyType)) { // ORM中Map的key必须是String类型 - throw new RunException("The key of the map in the ORM must be of the String type"); + throw new RunException("The key of the map in the ORM must be of the Base type"); } checkSubEntity(currentEntityClass, valueType); return; diff --git a/protocol/src/main/java/com/zfoo/protocol/util/ClassUtils.java b/protocol/src/main/java/com/zfoo/protocol/util/ClassUtils.java index 0bf8b9f6..13f13982 100644 --- a/protocol/src/main/java/com/zfoo/protocol/util/ClassUtils.java +++ b/protocol/src/main/java/com/zfoo/protocol/util/ClassUtils.java @@ -20,16 +20,8 @@ import java.io.IOException; import java.io.InputStream; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; -import java.net.JarURLConnection; -import java.net.URI; -import java.net.URISyntaxException; -import java.net.URL; -import java.net.URLConnection; -import java.util.Enumeration; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; +import java.net.*; +import java.util.*; import java.util.jar.JarEntry; import java.util.jar.JarFile; @@ -484,7 +476,7 @@ public abstract class ClassUtils { throw new RunException("[type:{}]类型不正确", type); } - private static boolean isBaseType(Class clazz) { + public static boolean isBaseType(Class clazz) { return clazz.isPrimitive() || Number.class.isAssignableFrom(clazz) || String.class.isAssignableFrom(clazz)