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
Publicar un comentario