Pessoal, como faço pra realizar uma consulta em JPA para obter todas as informações do usuário?
Já tentou usar EJB QL?
Segue abaixo um exemplo, espero que ajude, se precisar, posso lhe mandar uma apostila posteriormente.
try {
Query consulta = entityManager.createQuery(
"SELECT c from CLIENTE c " );
Cliente cliente = (Cliente)consulta.getSingleResult();
} catch(EntityNotFoundException n) {
} catch (NonUniqueResultException no) {
}
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.
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?
Para um único resultado utilize o getSingleResult() e para mais de um utilize getResultList().
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?
Ué, mas isso nao é JAVA é sql nao?
Se vc nao passar todos os dados do usuario na consulta, nao vejo outra forma.
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.
Entendi mais ou menos sua duvida.
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?
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.
Sim é isso mesmo.
eullerbd
Obrigado pela força.
=)
Precisando estamos ai Abraço