EJB QL tendo resultados multiplos em um Query.getResultList() [RESOLVIDO]

5 respostas
alanbrasil1984

tenho o seguinte condigo…

@SuppressWarnings("unchecked")
	public List<EntidadeClasse> getAllForART(){
		List<EntidadeClasse> entidades = new ArrayList<EntidadeClasse>();
		
		
		Query query = em.createQuery("select ec.id, ec.codigoRefArt, ec.pessoaJuridica from EntidadeClasse ec order by ec.id");
                
                //Aqui quero montar minha list com esses objetos que estão vindo do query.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.,…

5 Respostas

Jair_Rillo_Junior

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

alanbrasil1984:
tenho o seguinte condigo…

@SuppressWarnings("unchecked")
	public List<EntidadeClasse> getAllForART(){
		List<EntidadeClasse> entidades = new ArrayList<EntidadeClasse>();
		
		
		Query query = em.createQuery("select ec.id, ec.codigoRefArt, ec.pessoaJuridica from EntidadeClasse ec order by ec.id");
                
                //Aqui quero montar minha list com esses objetos que estão vindo do query.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")
	public List<EntidadeClasse> getAllForART(){
		List<EntidadeClasse> entidades = new ArrayList<EntidadeClasse>();
		
		
		Query query = 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(); 
		
		EntidadeClasse entidadeClasse = null;
		
		for (Object[] objects : resultado) {
			
			entidadeClasse = new EntidadeClasse();
			
			//entidades.get(i).setId();
			
			entidadeClasse.setId((Long)objects[0]);
			entidadeClasse.setCodigoRefArt((String)objects[1]);
			entidadeClasse.setPessoaJuridica((PessoaJuridica)objects[2]);
		
		
			entidades.add(entidadeClasse);
			
		}
		

				
		return entidades;
	}

Muito obrigado a todos pela ajuda…

Criado 9 de agosto de 2008
Ultima resposta 11 de ago. de 2008
Respostas 5
Participantes 3