Dúvida: Herança com Hibernate

Olá pessoal, alguem pode me dar uma luz

Eu tenho uma classe

E mais outras duas classes que herdam de pessoa

No banco eu possuo uma tabela para cada classe.

Minha dúvida é a seguinte: Eu tenho salvo no banco um “contato” que também é uma “pessoa” então possuem o mesmo codigo de chave primária. Mas então essa "pessoa que é um “contato” deve virar um “prospect”, isso quer dizer que devo inserir na tabela de prospect um registro com o mesmo codigo da “pessoa” que também é um “contato”.

É aí que vem o problema, quando eu vou salvar na tabela de prospect eu não consigo salvar com o mesmo código utilizando o hibernate, quando eu salvo ele cria um novo registro na tabela de prospect assim como na tabela pessoa, quando na verdade eu quero pegar a pessoa que ja existe "transforma-la em prospect, alguem sabe se isso é possivel? É algum tipo de mapeamento especifico ou alguma outra coisa?

Sei que se eu utilizar uma query nativa pra dar o insert eu posso conseguir, mas não me parece certo.

Em suma, eu quero atualizar uma pessoa existente e gravar um prospect com o mesmo codigo de pessoa, alguem ja se deparou com algo assim?

Abs

Aí você estaria fazendo um tipo de herança multipla e dinâmica.

A classe prospect possui muitos atributos que são específicos? Se não tiver, você pode usar um atributo booleano para simular isso.

Não sei se resolve o caso mas tu pode tentar fazer o mapeamento de duas tabelas para a mesma chasse.

http://dl.dropbox.com/u/37438722/classe%20com%20duas%20tabelas.pdf

a outra solução seria em vez de usar o é um usar o tem um ou seja adicionar um objeto do tipo pessoa as classes.

Caso você queira mapear em duas tabelas: Mapeando Duas Tabelas em uma Classe
Caso você queira utilizar herança, aqui tem duas das 3 estratégias existente até hoje: Uma tabela por herança, JPA Uma Classe por Sub-Classe.

Entendi, então eu realmente não posso por exemplo, pegar uma pessoa existente e criar um prospect a partir desta pessoa apenas complemetando com os dados pertinentes ao prospect?
O hibernate não consegue enxergar desta forma

Jake, esse foi um dos mapeamentos que usei, porem caiu nesse meu impasse, mas de qualquer forma obrigado.