Ho finalmente trovato la soluzione grazie a tutti voi !Ho accettato la risposta di João Mendes perché in realtà ho risolto il problema con l'alias corretto, ma anche tutte le altre risposte erano rilevanti e mi hanno aiutato.
Ecco la domanda finale. Nel DISTINCT
Ho inserito tutti i campi dell'oggetto mappato (Concentratore), più i due usati nel ORDER BY
usando l'alias corretto. Non è il più bello immagino, ma ha funzionato bene!
SELECT DISTINCT CONCENTRATOR_ID, c.NAME, SUPERVISIONNAME, INTERNALADDRESS, ACTIVEALARMS, IM, ID, LINK, IW, LASTUPDATE, TYPE_ID, DEPARTMENT_ID, d.NAME as "department.name", t.NAME as "type.name"
FROM "CONCENTRATOR" c LEFT OUTER JOIN "CONCENTRATOR_GROUP" USING(CONCENTRATOR_ID)
LEFT OUTER JOIN "GROUP" g USING(GROUP_ID)
LEFT OUTER JOIN "TYPE" t USING(TYPE_ID)
LEFT OUTER JOIN "DEPARTMENT" d USING(DEPARTMENT_ID)
WHERE (g.ident = 1) OR (g.ident = 16) OR (g.ident = 44)
AND (c.iw) > 0
AND TRIM(UPPER(t.name)) = 'OTELO'
ORDER BY im DESC, id DESC, link DESC, iw DESC, TRIM(UPPER(d.name)) ASC, TRIM(UPPER(c.name)) ASC