Uma tabela por classe concreta com Hibernate

1 resposta
Zakim

ola pessoal

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

tenho as classes :

class Pessoa {
    String nome;
    String cpf;
}

class Cliente extends Pessoa {
    Date dataCadastro;
}

class Colaborador extends Pessoa{
    double salario;
}

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

TABELA CLIENTE { nome, cpf, dataCadastro }

TABELA COLABORADOR{ nome, cpf, salario}

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?

1 Resposta

smkk

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)

<class name="Cliente">
		<id name="id" column="cpf">
		</id>
		<property name="nome"></property>
		<property name="dataCadastro"></property>	
	</class>
	
	<class name="Colaborador">
		<id name="id" column="cpf">
		</id>
		<property name="nome"></property>
		<property name="salario"></property>	
	</class>

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.

Criado 21 de outubro de 2007
Ultima resposta 21 de out. de 2007
Respostas 1
Participantes 2