JPA left join em classes extendidas

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

  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?

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();

Vê se esse link te ajuda.

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

vlw.