Uma tabela por classe concreta com Hibernate

ola pessoal

estou utilizando Hibernate para integrar o minha aplicação ao BD, com isso, surgiu a seguinte duvida

tenho as classes :

[code]class Pessoa {
String nome;
String cpf;
}

class Cliente extends Pessoa {
Date dataCadastro;
}

class Colaborador extends Pessoa{
double salario;
}
[/code]

lembrando que só exitem duas tabelas : “CLIENTE” e “COLABORADOR” — essas tabelas não seguem as regras de normalização e possuem atributos repetidos
ex:

[quote]TABELA CLIENTE { nome, cpf, dataCadastro }

TABELA COLABORADOR{ nome, cpf, salario}[/quote]

ai surge a minha duvida…

Como popular o objeto Cliente ou Colaborador utilizando hibernate? (lembrando que os atributos nome e cpf estão em uma superclasse)

poderima me dar um exemplo simples de código para resolver esse caso?

Olá, o mapeamento segue o mesmo, como se as entidades fossem separadas:

(lembrando que o melhor neste caso seria criar uma tabela Pessoa, e mapear com One-to-One ou Many-to-One)

[code] <class name=“Cliente”>
<id name=“id” column=“cpf”>
</id>
<property name=“nome”></property>
<property name=“dataCadastro”></property>
</class>

&lt;class name="Colaborador"&gt;
	&lt;id name="id" column="cpf"&gt;
	&lt;/id&gt;
	&lt;property name="nome"&gt;&lt;/property&gt;
	&lt;property name="salario"&gt;&lt;/property&gt;	
&lt;/class&gt;[/code]

a unica coisa que o hibernate precisa é que tenha uma propriedade “nome”, “cpf” e “dataCadastro”(“salario” no caso do colaborador) na sua classe POJO, e isso ocorre logo que suas classes extendem Pessoa.