是这样的原先呢我们的列表会根据某一个字段升序或者降序 但是现在用户有新需求要求我们能够多重排序,对于sql我们知道其实这是很简单的,接下来直接上代码
public class CustomerDTO {
private List<SortField> sortFields;
}
@Data
public class SortField {
private String fieldName;
private String order;
// Getters and Setters
}
当然也可以这么写 但是这样会有sql注入的问题为了安全咱还是多写一点趴
<foreach collection="customerDTO.sortFields" item="sortField" separator=",">
${sortField.fieldName} ${sortField.order}
</foreach>
<if test="customerDTO.sortFields != null and customerDTO.sortFields.size() > 0">
ORDER BY
<foreach collection="customerDTO.sortFields" item="sortField" separator=",">
<choose>
<when test="sortField.fieldName == 'totalPayNum'">totalPayNum ${sortField.order}</when>
</choose>
</foreach>
</if>
<if test="customerDTO.sortFields == null or customerDTO.sortFields.size() == 0">
ORDER BY loginDate DESC <!-- 默认排序 -->
</if>