diff --git a/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java b/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java index a661ec6..4544154 100644 --- a/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java +++ b/cloud/common/common-base-web/src/main/java/com/bgasol/common/core/base/service/BaseService.java @@ -18,11 +18,11 @@ import org.apache.commons.lang3.reflect.FieldUtils; import org.redisson.api.RMapCache; import org.redisson.api.RedissonClient; import org.springframework.beans.factory.annotation.Value; +import org.springframework.core.ResolvableType; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.lang.reflect.Field; -import java.lang.reflect.ParameterizedType; import java.util.*; import java.util.stream.Collectors; @@ -48,14 +48,9 @@ public abstract class BaseService commonBaseEntityClass() { - Class cls = getClass(); - while (!cls.getSuperclass().equals(BaseService.class)) { - cls = cls.getSuperclass(); - } - ParameterizedType type = (ParameterizedType) cls.getGenericSuperclass(); - @SuppressWarnings("unchecked") Class entityClass = (Class) type.getActualTypeArguments()[0]; - return entityClass; + return (Class) ResolvableType.forClass(getClass()).as(BaseService.class).getGeneric(0).resolve(); } /**