Duvida com o retorno do getResultList

3 respostas
L

E ai galera fmz

Estou com um problema que para muitos de vocês deve ser coisa fácil

quando crio uma query SQL simples, retornando apenas uma coluna, funciona perfeitamente, consigo ler o resultado do getResultList, o que acontecce no código abaixo:

public List filtra(String idade){
        Query q1 = em.createNativeQuery("SELECT nome FROM paciente WHERE idadenodiagnostico>?");
        q1.setParameter(1, idade);
       return q1.getResultList().subList(1, 2);
    }
  
}

porem quando passo no formato agora listado, com mais de uma coluna como retorno, quando retorno o GetResultList no XHTM me e apresentado coisa do tipo, java@langsiduhfs, creio que eu não esteja acessando corretamente, e também creio que não esteja entendendo como esta lista esta sendo retornada

public List filtra(String idade){
        Query q1 = em.createNativeQuery("SELECT nome,ID,datanascimento,idadenodiagnostico,estadocivil FROM paciente WHERE idadenodiagnostico>?");
        q1.setParameter(1, idade);
       return q1.getResultList().subList(1, 2);
    }
  
}

desde já agradeço

3 Respostas

M

quando voce faz um native query com mais de uma coluna, o hibernate retorna uma lista de arrays de Object
Seria como se ele retornasse isso: List<Object[]>
E dentro de cada array de objetos vai ter as colunas que voce pesquisou

L

Desculpe minha ignorância.

Mas como seria realizado o acesso a cada posição do array?

R
public List filtra(String idade){          
             Query q1 = em.createNativeQuery("SELECT nome,ID,datanascimento,idadenodiagnostico,estadocivil FROM paciente WHERE idadenodiagnostico > ?");          
              q1.setParameter(1, idade);         
              q1.addEntity(Paciente.class);
              return q1.getResultList().subList(1, 2);  

 }

Onde Paciente.class representa a sua classe mapeada pelo hibernate.

Criado 29 de janeiro de 2013
Ultima resposta 31 de jan. de 2013
Respostas 3
Participantes 3