Busca com JPA  XML
Índice dos Fóruns » Desenvolvimento Web
Autor Mensagem
anderson.bonavides
Virtual Machine Man
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 663
Offline

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

Sun Certified Java Programmer 5.0
[MSN]
eullerbd
JavaBaby
[Avatar]

Membro desde: 09/11/2006 15:12:57
Mensagens: 96
Localização: Bom Despacho - MG
Offline

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) {
}

This message was edited 1 time. Last update was at 22/05/2008 14:36:06


"Quem acredita sempre alcança"
[Email] [MSN]
anderson.bonavides
Virtual Machine Man
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 663
Offline

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.

Sun Certified Java Programmer 5.0
[MSN]
eullerbd
JavaBaby
[Avatar]

Membro desde: 09/11/2006 15:12:57
Mensagens: 96
Localização: Bom Despacho - MG
Offline

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?

This message was edited 3 times. Last update was at 22/05/2008 14:57:26


"Quem acredita sempre alcança"
[Email] [MSN]
Foxlol
JavaEvangelist
[Avatar]

Membro desde: 02/05/2006 10:17:47
Mensagens: 384
Localização: São José do Rio Pardo - SP
Offline

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

Sun Certified Java Programmer 1.4
[MSN] [ICQ]
anderson.bonavides
Virtual Machine Man
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 663
Offline

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?


Sun Certified Java Programmer 5.0
[MSN]
eullerbd
JavaBaby
[Avatar]

Membro desde: 09/11/2006 15:12:57
Mensagens: 96
Localização: Bom Despacho - MG
Offline

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

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

"Quem acredita sempre alcança"
[Email] [MSN]
anderson.bonavides
Virtual Machine Man
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 663
Offline

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.

Sun Certified Java Programmer 5.0
[MSN]
eullerbd
JavaBaby
[Avatar]

Membro desde: 09/11/2006 15:12:57
Mensagens: 96
Localização: Bom Despacho - MG
Offline

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?

This message was edited 2 times. Last update was at 22/05/2008 15:18:05


"Quem acredita sempre alcança"
[Email] [MSN]
eullerbd
JavaBaby
[Avatar]

Membro desde: 09/11/2006 15:12:57
Mensagens: 96
Localização: Bom Despacho - MG
Offline

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.

"Quem acredita sempre alcança"
[Email] [MSN]
anderson.bonavides
Virtual Machine Man
[Avatar]

Membro desde: 30/07/2007 22:43:05
Mensagens: 663
Offline

Sim é isso mesmo.

eullerbd

Obrigado pela força.

=)

Sun Certified Java Programmer 5.0
[MSN]
eullerbd
JavaBaby
[Avatar]

Membro desde: 09/11/2006 15:12:57
Mensagens: 96
Localização: Bom Despacho - MG
Offline

Precisando estamos ai Abraço

"Quem acredita sempre alcança"
[Email] [MSN]
 
Índice dos Fóruns » Desenvolvimento Web
Ir para:   
Powered by JForum 2.1.8 © JForum Team