boa tarde,
eu gostaria de fazer uma busca na tabela e retornar apenas um campo (DISTINCT(campo), mas não estou conseguindo o mais perto que cheguei foi assim:
public List<Holerite> listaEntidade() {
String sql = "SELECT DISTINCT tbl FROM Holerite tbl"
+ " WHERE tbl.cpf = :cpf"
+ " GROUP BY tbl.holeritePK.entidade";
Map<String, Object> parametros = new HashMap<String, Object>();
parametros.put("cpf", UsuarioControle.usuarioLogado.getCpf().replaceAll("[\\.|\\-]", ""));
return super.listaTodos(sql, parametros, 0);
}
public List<T> listaTodos(String sql, Map<String, Object> parametros, Integer limite) {
List<T> lista = null;
try {
Query query = emCadastro.createQuery(sql);
if (parametros != null && !parametros.isEmpty()) {
queryParametros(query, parametros);
}
if (limite > 0) {
query.setMaxResults(limite);
}
lista = query.getResultList();
} catch (Exception e) {
e.getMessage();
}
return lista;
}
eu quero retornar esses valores em um selectOneMenu teria alguma forma melhor de fazer isso pois da maneira que esta nao funciona ele traz varias vezes o mesmo registro