Convertir un getResultList() en una lista de objetos de Java

Hola ¿cómo están?... en esta ocasión voy a mostrar cómo se podría hacer cuando, se realiza una consulta a la base de datos pero esta retorna un listado de objetos que no están asociados a una clase que tengas. Para esto se realizaría en los siguientes métodos:

Se crea un método que obtenga la información desde una tabla de la base de datos, para este ejemplo diremos que tenemos la tabla llamada "comiteInfo", y tenemos una clase llamada "Comite".

public List<Comite> getAllComites() {

List<Comite> allComites = new ArrayList<Comite>();

StringBuilder sql = new StringBuilder();
sql.append("SELECT * FROM comiteInfo");
Query query = this.entityManager.createNativeQuery(sql.toString());

allComites = convertObjectComite(query.getResultList());

return null;
}

En este método transformaremos la lista de objetos que recibamos de la consulta, en la clase Comite

private List<Comite> convertObjectComite(List<Object> resultQuery) {
List<Comite> resultConvert = new ArrayList<Comite>();

Iterator<Object> it = resultQuery.iterator();
while(it.hasNext()){
Object[] data = (Object[]) it.next();
Comite objComite = new Comite(data);
resultConvert.add(objComite);
}

En este método tomará cada registro y lo casteara al campo que tenga la clase Comite

public Comite(final Object ... fields ) {
super();
this.idComite = (Long) fields[0];
this.nombreComite = (String) fields[1];
this.indTipComite = (String) fields[2];
}

Al finalizar obtendremos el listado convertido en la clase que necesitemos, esto no es lo más recomendable ya que por hibernate lo trae ya ajustado, pero a veces estas consultas están en alguna clase que modificarlas puede ser todo un caos, entonces usa esto de forma temporal.

Espero haya sido de ayuda y hasta la próxima

Comentarios