List<SimpleQuery.Order> orders = simpleQuery.getOrders();
if (orders != null && orders.size() > 0) {
for (SimpleQuery.Order order : orders) {
if (order.getSort().equalsIgnoreCase("lastTime") && order.getOrder().equalsIgnoreCase("asc")) {
//剔除掉 lastTime字段
// 自定义排序,使用 SQL 语法
query.orderBy(true, true, "IF(last_time IS NULL, 1, 0)");
// query.orderBy(true, true, "t_equm_maint.last_time");
query.orderByAsc(EqumMaint::getLastTime);
break; // 找到后跳出循环
}
}
}
或者
query.orderBy(true, true, "CASE WHEN last_time IS NULL THEN 1 ELSE 0 END, last_time"); // 如果上次维保时间为空,则始终排最后