|
|
|
@@ -2,6 +2,9 @@ package com.iformall.domain.po; |
|
|
|
|
|
|
|
import com.iformall.common.SortColumn; |
|
|
|
import org.apache.commons.lang3.StringUtils; |
|
|
|
import org.slf4j.Logger; |
|
|
|
import org.slf4j.LoggerFactory; |
|
|
|
|
|
|
|
import javax.persistence.Transient; |
|
|
|
import java.io.Serializable; |
|
|
|
import java.lang.reflect.Field; |
|
|
|
@@ -11,34 +14,53 @@ import java.lang.reflect.Field; |
|
|
|
* @date 2019/4/24 14:32 |
|
|
|
*/ |
|
|
|
public class BaseEntity implements Serializable { |
|
|
|
private final Logger logger = LoggerFactory.getLogger(this.getClass()); |
|
|
|
private static final long serialVersionUID = 1L; |
|
|
|
@Transient |
|
|
|
private String sortColumn; |
|
|
|
@Transient |
|
|
|
private String sortOrder; |
|
|
|
|
|
|
|
public String getSortColumn() { |
|
|
|
//back |
|
|
|
@Transient |
|
|
|
protected String sortColumns; |
|
|
|
|
|
|
|
public String getSortColumns() { |
|
|
|
String result = null; |
|
|
|
try { |
|
|
|
//扫描子类SortColumn注解的属性,替换sortColumn |
|
|
|
if(StringUtils.isNotBlank(sortColumn)) { |
|
|
|
Field[] fields = this.getClass().getDeclaredFields(); |
|
|
|
|
|
|
|
//判断是否合法 |
|
|
|
boolean find = false; |
|
|
|
for (Field field : fields){ |
|
|
|
if (field.getName().equals(sortColumn)) { |
|
|
|
find = true; |
|
|
|
break; |
|
|
|
} |
|
|
|
} |
|
|
|
if(!find) { |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
//扫描注解,优先解析注解 |
|
|
|
for (Field field : fields) { |
|
|
|
SortColumn sortColumnField = field.getAnnotation(SortColumn.class); |
|
|
|
if (sortColumnField != null && field.getName().equals(sortColumn)) { |
|
|
|
sortColumn = sortColumnField.column(); |
|
|
|
return sortColumn; |
|
|
|
result = sortColumnField.column() + " "+sortOrder; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
//默认驼峰解析 |
|
|
|
this.setSortColumn(underscoreName(sortColumn)); |
|
|
|
result = underscoreName(sortColumn) +" "+sortOrder; |
|
|
|
} |
|
|
|
} catch (Exception e) { |
|
|
|
logger.error("BaseEntity.getSortColumn解析失败",e); |
|
|
|
e.printStackTrace(); |
|
|
|
} |
|
|
|
|
|
|
|
return sortColumn; |
|
|
|
logger.info("--------order:"+result); |
|
|
|
return result; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|
@@ -75,4 +97,12 @@ public class BaseEntity implements Serializable { |
|
|
|
public void setSortOrder(String sortOrder) { |
|
|
|
this.sortOrder = sortOrder; |
|
|
|
} |
|
|
|
|
|
|
|
public void setSortColumns(String sortColumns) { |
|
|
|
this.sortColumns = sortColumns; |
|
|
|
} |
|
|
|
|
|
|
|
public String getSortColumn() { |
|
|
|
return sortColumn; |
|
|
|
} |
|
|
|
} |