Bladeren bron

[排序][修改]:支持父类字段

release_toaliyun_real
Stormeye Wu 6 jaren geleden
bovenliggende
commit
727f721ba1
1 gewijzigde bestanden met toevoegingen van 11 en 3 verwijderingen
  1. +11
    -3
      mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java

+ 11
- 3
mallinkService/src/main/java/com/iformall/domain/po/BaseEntity.java Bestand weergeven

@@ -8,6 +8,9 @@ import org.apache.commons.lang3.StringUtils;
import javax.persistence.Transient; import javax.persistence.Transient;
import java.io.Serializable; import java.io.Serializable;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;


/** /**
* @author luozukai * @author luozukai
@@ -36,10 +39,15 @@ public class BaseEntity implements Serializable {
try { try {
//扫描子类SortColumn注解的属性,替换sortColumn //扫描子类SortColumn注解的属性,替换sortColumn
if(StringUtils.isNotBlank(sortColumn)) { if(StringUtils.isNotBlank(sortColumn)) {
Field[] fields = this.getClass().getDeclaredFields();
List<Field> 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); SortColumn sortColumnField = field.getAnnotation(SortColumn.class);
if (sortColumnField != null && field.getName().equals(sortColumn)) { if (sortColumnField != null && field.getName().equals(sortColumn)) {
return sortColumnField.column() + " "+sortOrder; return sortColumnField.column() + " "+sortOrder;
@@ -48,7 +56,7 @@ public class BaseEntity implements Serializable {


//判断是否合法 //判断是否合法
boolean find = false; boolean find = false;
for (Field field : fields){
for (Field field : fieldList){
if (field.getName().equals(sortColumn)) { if (field.getName().equals(sortColumn)) {
find = true; find = true;
break; break;


Laden…
Annuleren
Opslaan