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