我正在尝试从请求到Oracle数据库对List<Map<String, Object>>
进行排序。我收到的格式是
63: "Preasignación"
401: "Categorización de posiciones RPV"
509: "Genérica"
532: "Baja de conservación de número"
537: "Pooles ADSL RIMA"
660: "Activación"
886: "CENTREX"
905: "Conservación de número"
920: "Suspensión y rehabilitación"
955: "STB, AABB, PBX e ISPBX"
如您所见,它们是按数字排序的,但是我想按“字母顺序”的值对其进行排序。我该怎么做?请尽量不要用西班牙语代码吓::)这是继承的代码。这是我的代码。
public ArrayList<String> ObtenerIdsTiposOrdenPorPerfilLdap(String perfiles) {
String query = "";
ArrayList<String> tipos = new ArrayList<String>();
try {
query = " SELECT ID_PARAMETRO FROM PARAMETRO WHERE EXISTS( " +
" SELECT DISTINCT(ID_TIPO_ORDEN) FROM REL_PERF_LDAP_PERF_TP_ORD_SIS " +
" WHERE ID_PERFIL_LDAP IN (" + perfiles + ") " +
" AND ID_TIPO_ORDEN = -1) " +
" AND ID_TIPO_PARAMETRO = " + Parametro.ID_TIPO_PARAMETRO_TIPO_ORDEN +
" UNION " +
" SELECT ID_PARAMETRO FROM PARAMETRO WHERE ID_PARAMETRO IN ( " +
" SELECT DISTINCT(ID_TIPO_ORDEN) FROM REL_PERF_LDAP_PERF_TP_ORD_SIS " +
" WHERE ID_PERFIL_LDAP IN (" + perfiles + ")) " +
" AND ID_TIPO_PARAMETRO = " + Parametro.ID_TIPO_PARAMETRO_TIPO_ORDEN +
" ORDER BY ID_PARAMETRO ";
List<Map<String, Object>> result = jdbcTemplate.queryForList(query);
for (Map<String, Object> map : result) {
tipos.add(String.valueOf(map.get("ID_PARAMETRO")));
}
} catch (Exception e) {
log.error(e.getMessage());
} finally {
query = null;
}
return tipos;
}
答案 0 :(得分:1)
如果PARAMETRO
(“preasignación”,...)的文字描述实际上在PARAMETRO
本身中(我们将其称为TXT_PARAMETRO
列),就足以问到数据库执行订购:删除
" ORDER BY ID_PARAMETRO ";
并添加
" ORDER BY TXT_PARAMETRO ";
相反。