Duvida básica . Query no atributo Mapeado

1 resposta
Z

Pessoal estou iniciando em JPA e estou com uma duvida .

Quais as formas e qual a melhor forma para fazer uma query em atributo assiciado ( já mapeado via anotation ) em minha classe ?

Por exemplo :
Tenho pessoas e tem carros .

Eu quero pegar o carro X da pessoa Y .
Um modo de fazer é pegar a pessoa X do bd , e carregar todos os carros usando Eager . Depois procurar dentro do array .
Mas sem duvidas esse método não é nenhum pouco eficiente , pois estou usando memória que não preciso .

1 Resposta

E

Faça um metodo contendo uma hql retornado todos os carros daquela pessoa.

ex:

public List<Carro> buscarCarrosPorPessoa(Integer idPessoa) {
   Query q = getEntityManager().createQuery("SELECT c FROM Carro c WHERE c.pessoa.idPessoa = :idPessoa");
    q.setParameter("idPessoa", idPessoa);
    return q.getResultList();
}
Criado 20 de maio de 2010
Ultima resposta 24 de mai. de 2010
Respostas 1
Participantes 2