diff --git a/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java b/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java index da397ce36..08d80ff93 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java @@ -8,6 +8,9 @@ import org.apache.commons.lang3.StringUtils; import javax.persistence.Transient; import java.io.Serializable; import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * @author luozukai @@ -36,10 +39,15 @@ public class BaseEntity implements Serializable { try { //扫描子类SortColumn注解的属性,替换sortColumn if(StringUtils.isNotBlank(sortColumn)) { - Field[] fields = this.getClass().getDeclaredFields(); + List fieldList = new ArrayList<>() ; + Class tempClass = this.getClass(); + while (tempClass != null) {//当父类为null的时候说明到达了最上层的父类(Object类). + fieldList.addAll(Arrays.asList(tempClass.getDeclaredFields())); + tempClass = tempClass.getSuperclass(); //得到父类,然后赋给自己 + } //扫描注解,优先解析注解 - for (Field field : fields) { + for (Field field : fieldList) { SortColumn sortColumnField = field.getAnnotation(SortColumn.class); if (sortColumnField != null && field.getName().equals(sortColumn)) { return sortColumnField.column() + " "+sortOrder; @@ -48,7 +56,7 @@ public class BaseEntity implements Serializable { //判断是否合法 boolean find = false; - for (Field field : fields){ + for (Field field : fieldList){ if (field.getName().equals(sortColumn)) { find = true; break;