Dúvida na consulta usando HQL

6 respostas
I

Olá a todos,

Preciso de uma ajuda na criação de consultas usando o HQL e o criteria se for o caso.

Tenho uma tabela 1:N como segue:

Tabela Pessoa
idpessoa (PK), nome, data_cadastro

Tabela Telefone
idtelefone(PK), ddd, fone, idpessoa(FK)

Eu consigo consultar o objeto pessoa e recuperar os atributos conforme o exemplo abaixo:

Session s = HibernateUtil.getSessionFactory().getCurrentSession();  
s.beginTransaction();                 
List<Pessoa> lista = (List<Pessoa>)s.createQuery("from Pessoa").list();  
  
for(Pessoa p : lista){  
    System.out.println("Código: " + p.getIdpessoa());  
    System.out.println("Nome: " + p.getNome());     
}
  1. O problema é: como faço para exibir os telefones que pertencem a essa pessoa?
  2. Eu não estou usando nenhum Annotations para realizar as consultas. Isso esta correto mesmo?

Eu preciso de ajuda na criação da Query em HQL e depois na hora de recuperar as informações através do objeto Pessoa ou Telefone.
To perdido ai…

Alguém por favor pode me ajudar.
Grato.

6 Respostas

Hebert_Coelho

Não bastaria fazer pessoa.getTelefone().getFone()?

I

Então isso foi a primeira coisa que tentei, mas em pessoa não existe o atributo telefone. Este atributo esta na classe Telefone.
telefone.getFone …

Bom, pode ser que eu fiz errado. Você sabe qual é o certo?

tveronezi

http://www.guj.com.br/java/278296-consultas-usando-hql-

Hebert_Coelho

Você deve criar e relacionar na sua classe esse campo.

http://uaihebert.com/?p=50

I

Dúvida respondida aqui:
http://www.guj.com.br/java/278296-consultas-usando-hql-

Obrigado jakefrog e tveronezi.

LPJava

tá fazendo o relacionamento correto entre as tabelas? digo, as anotações estão certas? Se sim, quando vc trazer a pessoa, no método getTelefone() vc vai ter o que precisa.

Veja como fazer o one-to-many:
http://blog.camilolopes.com.br/onetomany-com-hibernate-jpa/

Criado 20 de julho de 2012
Ultima resposta 21 de jul. de 2012
Respostas 6
Participantes 4