JPA left join em classes extendidas

3 respostas
javakid

Oi galera!

tenho a classe Pessoa,
e as Classes PessoaJuridica e PessoaFisica que extendem Pessoa,

na query quero trazer a instancia de uma ou outra… não quero trazer só pessoa, pq pode ser mesclado…

enfim… meu select nao funfa:

str.append("SELECT p FROM PessoaBean p " 
				+" inner join p.pessoaTipoPessoa t " 
				+" left outer join PessoaJuridicaBean pj on (p.idPessoa = pj.idPessoa) " 
				+" left outer join PessoaFisicaBean pf on (p.idPessoa = pf.idPessoa) ");

alguem pode ajudar ? valew

3 Respostas

barenko
  1. str.append("SELECT p FROM PessoaBean p "
  2. +" inner join p.pessoaTipoPessoa t "
    
  3. +" left outer join PessoaJuridicaBean pj on (p.idPessoa = pj.idPessoa) "
    
  4. +" left outer join PessoaFisicaBean pf on (p.idPessoa = pf.idPessoa) ");
    

Não está faltando a cláusula ON do “inner join” para linkar p com t?

javakid

mas… precisa !? pq ? vixi agora nao entendi ehehe

pessoaTipoPessoa é, na classe Pessoa, tabela ponte…

e o inner join já está funcionando certinho… são os lefts que nao funcionam…

@ManyToMany(cascade=CascadeType.PERSIST, fetch=FetchType.EAGER)

@JoinTable(name=pessoastipospessoas, joinColumns={@JoinColumn(name=numg_pessoa)}, inverseJoinColumns={@JoinColumn(name=numg_tipopessoa)})

private List pessoaTipoPessoa = new ArrayList();
tfc1304

Vê se esse link te ajuda.

http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html

vlw.

Criado 8 de outubro de 2009
Ultima resposta 8 de out. de 2009
Respostas 3
Participantes 3