[RESOLVIDO] Hibernate - Herança TABLE_PER_CLASS

4 respostas
B

Ola amigos,

Estou com um problema estou com todas as classes mapeadas corretamente tenho registros nas tabelas mais ocorre que nao consigo exibir a pessoa fisica e a pessoa juridica juntas somente um por um.

Colando show_sql = true reparei que so esta sendo feito 1 select:

select
    pessoa_fis0_.id as id10_0_,
    pessoa_fis0_.nome as nome10_0_,
    pessoa_fis0_.cpf as cpf11_0_ 
from
    pessoa_fisica pessoa_fis0_ 
where
    pessoa_fis0_.id=?

Segue meu codigo main:

Pessoa_fisica pf = (Pessoa_fisica) session.get(Pessoa_fisica.class, 1);
        Pessoa_juridica pj = (Pessoa_juridica) session.get(Pessoa_juridica.class, 1);
    

        Pessoa pessoa1 = pf;
        Pessoa pessoa2 = pj;

       System.out.println("Nome da pessoa fisica usando a super classe: "+pessoa1.getNome());
       System.out.println("Nome da pessoa fisica usando a sub classe: "+pf.getNome());

        //AQUI OCORRE O NullPointerException
       System.out.println("Nome da pessoa juridica usando a super classe: "+pessoa2.getNome());
       System.out.println("Nome da pessoa juridica usando a sub classe: "+pj.getNome());

Obrigado pela atenção de todos.

4 Respostas

rylphs

Quais classes implementam o getNome()?

B

Olá rylphs,

É a classe Pessoa que tem o nome.

rylphs

Pessoa_juridica está extendendo Pessoa? Posta seu código pq fica mais fácil do pessoal te ajudar.

B

Resolvido usando:

session.evict(pf);

Obrigado pela atenção rylphs.

Criado 4 de maio de 2010
Ultima resposta 4 de mai. de 2010
Respostas 4
Participantes 2