Herança com Hibernate

Boa Tarde,

Pessoal,

Estou tento um problema para implementar uma herança no meu código, o problema é o seguinte:

Eu tenho uma classe abstrata Pessoa que está mapeada da seguinte maneira:

[code]@MappedSuperclass
public abstract class Pessoa{

protected String nome

@Id
protected String CPF

} [/code]

A partir daí, tenho duas classes que extendem Pessoa (Cliente e Funcionario) que estão mapeadas da seguinte maneira:

@Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Cliente{ ... ... }

@Entity @Inheritance(strategy = InheritanceType.TABLE_PER_CLASS) public class Funcionario{ @Id @GeneratedValue protected int matricula ... }

Ou seja, para Cliente está funcionando normal, a chave primária que ele cria no banco é realmente CPF, mas no caso de Funcionario, eu quero que a chave primária seja Matricula e não CPF como está herdando da classe Pessoa.

Alguém aí sabe se tem alguma forma diferente de fazer o mapeamento para que atenda o que eu estou querendo!?

Valeu!

da uma olhada nessa annotation

@AttributeOverride

mas acho q o melhor msm seria deixar cada ID na sua classe nao expecificar na abstrata.

FLwS

Pois é… Eu consegui resolver assim mesmo!

Tirei o @Id da classe Pessoa e coloquei nas classes filhas.

Porém, me surgiu outra dúvida:
Em Cliente eu não tenho declarado o atributo CPF, que seria o @Id, pois ele é definido em Pessoa.

Consegui resolver isso sobrescrevendo o método getCPF() na classe Cliente e colocando a annotation @Id em cima do método.

De qualquer forma, valeu pela ajuda!