JPA + persist com herança entre tabelas

Como eu faço para passar no persist uma classe de herança, por exemplo

PessoaFisica extends Pessoa

quero gravar apenas os dados de Pessoa

[code]

public void grava(Pessoa p) {

persist§;

}[/code]

mas quem chama o metodo passa um pessoaFisica como parametro

[code]PessoaFisica pf = new PesssoFisica();
pf.setNome(“JOAO”);

grava(pf);[/code]

como eu faço para o JPA gravar a Pessoa pois quando executo a aplicacao ele da uma exception

mas na verdade nao preciso dessa classe mapeda vamos supor q nao tenho no banco a tabela PessoaFisica tenho apenas pessoa e os valores de PessoaFisica nao herdados sao apenas para decoracao

como forço o JPA a gravar pessoa e nao tentar gravar PessoaFisica?

Como é que esta a anotação nessas classes?

entao por exemplo essa PessoaFisica na verdade nao eh um entity eh uma classe Adapter que extends Pessoa entao ela nao possui nenhuma anotacao e nao fica mapeado no persistence.xml ja a Pessoa esta anotada normal

@Entity @Table(name = "pessoa", catalog = "ct", schema = "teste")

se eu passo apenas Pessoa p para o persist grava normal o problema é quando passo um PessoaFisica pf pensei que o JPA transformace PessoaFisica em Pessoa altomaticamente

Obs: Esses exemplos de Pessoa e PessoaFisica sao apenas para demosntracao de conceito aqui no sistema sao tabelas bem mais complexas mas que no fim seguem a mesma logica de herança

Isso ñ é possível. Se vc quer gravar uma entidade no banco o objeto passado p/ o persist precisa ser uma entidade, senão da pau.

mas por exemplo como faço para popular um objeto Pessoa pegando os valores de um PessoaFisica

[code]Pessoa p = new Pessoa();

    PessoaFisica pf = new PessoaFisica();
    pf.setCpf("123456789");
    pf.setNome("Filisbino");

    p = pf;[/code]

ao fazer isso eu tenho o objeto p com todos os atributos de Pessoa mas quando faço

ele mostra o nome da classe PessoaFisica pois eu apontei o objeto p em pf mas quando eu passo esse p para o persist do JPA ele entende como uma classe do tipo PessoaFisica e da o erro

Não importa como vc chama pf ele sempre será um objeto do tipo PessoaFisica. Vc ñ pode mudar o tipo de um objeto. Ou vc se livra dessa herança ou vc transforma PessoaFisica em entidade.

é vou fazer um adapter e transformar e popular um Pessoa a partir do PessoaFisica e passar pro JPA