Retornar varios objetos para DisplayTag

1 resposta
edysnipes

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!

1 Resposta

edysnipes

A situação evoluiu.

Recebo dos dados em uma colletcion mas o problema agora e na hora de dispor no display tag.

Na collection recebo:

[Object]
                PNRReserva.
                PermMilitar.

agora minha dúvida é em como dispor isso no display tag:

assim não funciona:

<display:column title="Identidade" property="pnrReserva.permissionario.nrIdentidade"></display:column>
		<display:column title="Identidade" property="permMilitar.nrIdentidade"></display:column>
Criado 12 de maio de 2009
Ultima resposta 12 de mai. de 2009
Respostas 1
Participantes 1