EJB QL tendo resultados multiplos em um Query.getResultList() [RESOLVIDO]
5 respostas
alanbrasil1984
tenho o seguinte condigo…
@SuppressWarnings("unchecked")publicList<EntidadeClasse>getAllForART(){List<EntidadeClasse>entidades=newArrayList<EntidadeClasse>();Queryquery=em.createQuery("select ec.id, ec.codigoRefArt, ec.pessoaJuridica from EntidadeClasse ec order by ec.id");//Aquiqueromontarminhalistcomessesobjetosqueestãovindodoquery.getResultList();}
eu queria montar meu objeto entidades com o resultado da query…
estou fazendo isso para poder ganhar desempenho na aplicação…
Simplesmente chamando o getResultList() nao funciona?
entidades = query.getResultList();
alanbrasil1984
não pq ele não compreende o a classe ele até entra mais como Object…
ja tentei entidades = (List) query.getResultList();
mas nem funcionou…
mesmo assim obrigado…
Jair_Rillo_Junior
O seu EntidadeClasse está dentro de algum pacote? Se sim, tem que definir no EJB QL.
B
baison
alanbrasil1984:
tenho o seguinte condigo…
@SuppressWarnings("unchecked")publicList<EntidadeClasse>getAllForART(){List<EntidadeClasse>entidades=newArrayList<EntidadeClasse>();Queryquery=em.createQuery("select ec.id, ec.codigoRefArt, ec.pessoaJuridica from EntidadeClasse ec order by ec.id");//Aquiqueromontarminhalistcomessesobjetosqueestãovindodoquery.getResultList();}
eu queria montar meu objeto entidades com o resultado da query…
estou fazendo isso para poder ganhar desempenho na aplicação…
desde ja obrigado a todos.,…
Bom, nesse caso vc deveria colocar assim:
List<Object[]> resultado = query.getResultList();
Ja que, agora, essa sua query, cada linha sera um array, onde:
a posicao 0 sera o Id
a posicao 1 sera codigoRefArt
a posicao 2 sera pessoaJuridica
Aí, na hora de obter os resultados, vc faz um cast de cada posição…
VLW
alanbrasil1984
o codigo final ficou assim…
@SuppressWarnings("unchecked")publicList<EntidadeClasse>getAllForART(){List<EntidadeClasse>entidades=newArrayList<EntidadeClasse>();Queryquery=em.createQuery("select ec.id, ec.codigoRefArt, ec.pessoaJuridica from EntidadeClasse ec order by ec.id");System.out.println("tamanho da lista da Query "+query.getResultList().size());List<Object[]>resultado=query.getResultList();EntidadeClasseentidadeClasse=null;for(Object[]objects:resultado){entidadeClasse=newEntidadeClasse();//entidades.get(i).setId();entidadeClasse.setId((Long)objects[0]);entidadeClasse.setCodigoRefArt((String)objects[1]);entidadeClasse.setPessoaJuridica((PessoaJuridica)objects[2]);entidades.add(entidadeClasse);}returnentidades;}