List com dois objetos

4 respostas
S

Olá amigos

estou fazendo uma consulta com JPA que está me retornando 2 objetos:

public List<?> listAllContratos(String order) {
	final Query query = em.createQuery("select e,i from Contrato e inner join Imovel i on i.codigoImovel = e.imovel where e.excluido = false "+order);	
	return query.getResultList();
}

image

como eu faço para acessar o objeto Contrato e Imovel?

Alguém poderia ajudar?

Muito obrigado

4 Respostas

davidbuzatto

Seu método retorna uma lista. Essa lista contém, em cada elemento, mais uma lista com dois elementos, um Contrato e um Imovel. No resultado mostrado, são apresentadas duas dessas duplas. Para obter um item de uma lista pelo seu índice basta usar o método get( indice ), então para pegar o Contrato da primeira dupla seria algo como listaRetornada.get(0).get(0).

S

Olá amigo

apresenta o seguinte erro:

image

S

Olá amigos

consegui fazer com esta solução:

for (int i = 0; i < this.contratos.size(); i++) {
	vo = new ContratoGridVO();

    Object[] row = (Object[]) contratos.get(i);
    int j = 0;
    for (Object object : row) {
    	if (j == 0) {
    		Contrato contrato = (br.com.imob.entities.Contrato) object;
    		vo.setContrato_codigo(contrato.getCodigoContrato());
    		vo.setContrato_periodoinicial(br.com.imob.util.Funcoes.getLocalDateToString(contrato.getPeriodoInicial()));
    		vo.setContrato_periodofinal(br.com.imob.util.Funcoes.getLocalDateToString(contrato.getPeriodoInicial()));
    	}
    	else {
    		Imovel imovel = (br.com.imob.entities.Imovel) object;
			vo.setContrato_enderecoimovel(imovel.getEndereco());
    	}

    	j++;
        System.out.println(object);
    }

    list.add(vo); 
}

Muito obrigado

davidbuzatto

Na verdade eu chutei que os objetos contidos na lista seriam listas. Podem ser arrays por exemplo. Se conseguiu, ótimo.

Criado 14 de julho de 2023
Ultima resposta 15 de jul. de 2023
Respostas 4
Participantes 2