Jpa + select

2 respostas
J

Tenho a seguinte situação:

Quero recuperar do Banco de Dados apenas dois atributos de uma classe;

Query query = getEm().createQuery("SELECT nome, id FROM Grupo g where g.ativo=?");
      query.setParameter(1, 't');

      List objs = query.getResultList();

até aí tudo bem.
Debugando ele me tras um objeto com dois atributos, uma String e um int.
Mais como faço pra recuperar isso em um objeto do tipo grupo.

Assim não funciona:

Grupo grupo = (Grupo) query.getResultList().iterator().next();

Se puderem me ajudar agradeço

2 Respostas

Fenak

Captura os valores jogando num ArrayList, como vc fez:

ArrayList<Grupo> list = query.getResultList(); //não lembro se tem q fazer casting

Aí vc já tem os objetos no ArrayList de Grupo
Caso vc keira jogar em objetos do tipo Grupo, se tiver um item só pra trazer do banco, use:

Grupo g = (Grupo) query.getSingleResult();

Caso vc for jogar em um vetor, por exemplo:

int i = 0;
Grupo[] grupos;
for (Grupo g:list) {

grupos[i] = g;
i++;

}
Espero que isso ajude de alguma forma! ;]

[]'s

Fenak

Agora que eu vi, corrigindo e adicionando até:

Caso vc não estiver trabalhando com objetos (queries do JPA), vc vai ter q setar seu objeto Grupo.
Pelo que vi, vc está usando query nativa.

Nesse caso, trabalhamos com dados puros do banco…
Vc já tendo a List com os objetos, vc pega os valores e cria um objeto Grupo, setando os atributos via setter:

Grupo g = new Grupo();
g.setXxx(xxx);
g.setYyy(yyy);

Rs… espero que tenha entendido, acho q ficou meio confuso…

[]'s

Criado 21 de novembro de 2007
Ultima resposta 21 de nov. de 2007
Respostas 2
Participantes 2