|
@@ -29,6 +29,7 @@ import org.apache.ibatis.logging.LogFactory;
|
|
|
import org.apache.ibatis.session.SqlSession;
|
|
|
import org.mybatis.spring.SqlSessionUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.core.ResolvableType;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.io.Serializable;
|
|
@@ -80,11 +81,19 @@ public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {
|
|
|
}
|
|
|
|
|
|
protected Class<T> currentMapperClass() {
|
|
|
- return (Class<T>) ReflectionKit.getSuperClassGenericType(getClass(), 0);
|
|
|
+ return (Class<T>) this.getResolvableType().as(ServiceImpl.class).getGeneric(0).getType();
|
|
|
}
|
|
|
|
|
|
protected Class<T> currentModelClass() {
|
|
|
- return (Class<T>) ReflectionKit.getSuperClassGenericType(getClass(), 1);
|
|
|
+ return (Class<T>) this.getResolvableType().as(ServiceImpl.class).getGeneric(1).getType();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * @see ResolvableType
|
|
|
+ * @since 3.4.2
|
|
|
+ */
|
|
|
+ protected ResolvableType getResolvableType() {
|
|
|
+ return ResolvableType.forClass(ClassUtils.getUserClass(getClass()));
|
|
|
}
|
|
|
|
|
|
/**
|