Busca com JPA

11 respostas
anderson.bonavides

Pessoal, como faço pra realizar uma consulta em JPA para obter todas as informações do usuário?

11 Respostas

eullerbd

Já tentou usar EJB QL?

Segue abaixo um exemplo, espero que ajude, se precisar, posso lhe mandar uma apostila posteriormente. :slight_smile:

try {

Query consulta = entityManager.createQuery(

"SELECT c from CLIENTE c " );

Cliente cliente = (Cliente)consulta.getSingleResult();

} catch(EntityNotFoundException n) {

} catch (NonUniqueResultException no) {

}
anderson.bonavides

Como ele vai saber que é um cliente em si se não estou comparando com ninguem?
Pelo q eu entendi ai são varios clientes.

eullerbd

Você pode passar os parametros para a consulta. Exemplo

try {
Query consulta = entityManager.createQuery(
“SELECT c from CLIENTE c where c.nome=“Roberto” and”

  • "c.sobrenome=“Santos” );
    Cliente cliente = (Cliente)consulta.getSingleResult();
    } catch(EntityNotFoundException n) {
    } catch (NonUniqueResultException no) {
    }

ou assim

public List encontrarPorNome(String nome, String sobrenome) {

Query query = entityManager.createQuery(Select from Cliente c where

c.nome=:nome and c.sobrenome=:sobrenome);

query.setParameter(nome”, nome);

query.setParameter(sobrenome”, sobrenome);

return query.getResultList( );

}

era esta a duvida?

Foxlol

Para um único resultado utilize o getSingleResult() e para mais de um utilize getResultList().

anderson.bonavides

eullerbd Compreendi. Mas o meu questionamento é que seu eu encontro o usuario pelo login fica faltando o resto das informações dele. Como por exemplo telefone e eu teria que passar isso por parametro atraves da consulta. Tem alguma outra forma de obter todas informações possiveis atravez daquela consulta?

eullerbd

Ué, mas isso nao é JAVA é sql nao?

Se vc nao passar todos os dados do usuario na consulta, nao vejo outra forma.

anderson.bonavides

sim é sql é verdade. É que como não conheço o poder de JPA pensei que poderia existir alguma forma de conseguir isso.
Vi que existem algumas consultas que fazem isso através do ID. Mas não sei fazer desta forma. Não sei quando se deve utilizar o id.

eullerbd

Entendi mais ou menos sua duvida. :slight_smile:

Pelo que sei quando há algum relacionamento entre as classes por exemplo se a classe Login tiver o objeto usuario da classe Usuario é possivel recuperar todos os dados da tabela usuario passando apenas o objeto usuario com seu respectivo id.

suponha que o objeto seja o login , como o login se relaciona com a classe Usuario.

O JPA traz os dados automaticamente.

exemplo login.getUsuario.getNome();

é esta a sua duvida?

eullerbd

So complementando…as classes devem ter o mapeamento correto para que o que foi citado acima aconteça. Voce deve definir a relacao entre as classes Login e Usuario.

anderson.bonavides

Sim é isso mesmo.

eullerbd

Obrigado pela força.

=)

eullerbd

Precisando estamos ai :smiley: Abraço

Criado 22 de maio de 2008
Ultima resposta 22 de mai. de 2008
Respostas 11
Participantes 3