Saudações!
Gostaria de realizar uma consulta em que é retornado varios tipos de objetos.
Erradamente (creio eu) um List estava recebendo essa consulta:
public List<PNRReserva> listaPNRReservados() {
Session sessao = HibernateUtil.getSession();
List<PNRReserva> reserva = null;
String sql = "FROM PNRReserva reserva, Permissionario permissionario, PNR pnr, PermMilitar permMilitar " +
"WHERE reserva.permissionario.nrIdentidade = permMilitar.nrIdentidade " +
"order by reserva.pnr.pnrBlocoConjunto.pnrQuadra.pnrArea.idArea";
try {
Query query = sessao.createQuery(sql);
reserva = (List<PNRReserva>)query.list();
return reserva;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Ao pensar um pouco (rsrs) creio que o motivo do display tag para não identificar o List que recebe o resultado dessa consulta na action e o fato de o mesmo não estar recebendo somente o tipo PNRReserva mais sim varios tipos de objetos.
Codigo da Action:
public String relatorioPNRReservados() {
try {
listaPNRReservados = PNRReservaDAO.getInstance().listaPNRReservados();
qtdReservas = PNRReservaDAO.getInstance().quantidadePNRReservados();
} catch (Exception e) {
e.printStackTrace();
}
return "pnrReservados";
}
Creio que a solução seria algo do tipo:
public Collection<?> listaPNRReservados() {
Session sessao = HibernateUtil.getSession();
Collection<?> reserva = null;
String sql = "FROM PNRReserva reserva, Permissionario permissionario, PNR pnr, PermMilitar permMilitar " +
"WHERE reserva.permissionario.nrIdentidade = permMilitar.nrIdentidade " +
"order by reserva.pnr.pnrBlocoConjunto.pnrQuadra.pnrArea.idArea";
try {
Query query = sessao.createQuery(sql);
reserva = (List<PNRReserva>)query.list();
return reserva;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
Mas gostaria da ajuda da comunidade.
Obrigado!