diff --git a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfoFactory.java b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfoFactory.java index c0f5c32a..140e05da 100644 --- a/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfoFactory.java +++ b/mybatis-flex-core/src/main/java/com/mybatisflex/core/table/TableInfoFactory.java @@ -201,8 +201,14 @@ public class TableInfoFactory { if (superclass == null || superclass == Object.class) { return null; } - Type[] typeArguments = superclass.getTypeParameters(); - adjustTypeArguments(mapperClass, actualTypeArguments, typeArguments); + Type[] typeArguments = null; + Type genericSuperclass = mapperClass.getGenericSuperclass(); + if(genericSuperclass instanceof ParameterizedType){ + typeArguments = ((ParameterizedType) genericSuperclass).getActualTypeArguments(); + if (actualTypeArguments != null && actualTypeArguments.length > 0) { + adjustTypeArguments(mapperClass, actualTypeArguments, typeArguments); + } + } return getEntityClass(superclass, typeArguments); }