Mapeando Herança no Hibernate

1 resposta
shlmit

Bom dia pessoal, sou iniciante em java e estou desenvolvendo uma aplicação utilizando Hibernate, gostaria de saber como faço para Mapear uma Herança...

Tenho as Classes Paciente, Funcionario, Medico, que herdam da classe Pessoa...como faria para mapear herança?

O Hibernate está gerando assim o Paciente.java

Se puderem me ajudar, agradeço.
public class Paciente  implements java.io.Serializable {


     private int idpaciente;
     private Pessoa pessoa;
     private String tipopele;
     private String tiposangue;
     private String nompai;
     private String nommae;
     private Double altura;
     private Double peso;
     private Set exames = new HashSet(0);
     private Set contatos = new HashSet(0);
     private Set tratamentos = new HashSet(0);
     private Set historicoclinicos = new HashSet(0);

    public Paciente() {
    }

	
    public Paciente(int idpaciente, Pessoa pessoa) {
        this.idpaciente = idpaciente;
        this.pessoa = pessoa;
    }
    public Paciente(int idpaciente, Pessoa pessoa, String tipopele, String tiposangue, String nompai, String nommae, Double altura, Double peso, Set exames, Set contatos, Set tratamentos, Set historicoclinicos) {
       this.idpaciente = idpaciente;
       this.pessoa = pessoa;
       this.tipopele = tipopele;
       this.tiposangue = tiposangue;
       this.nompai = nompai;
       this.nommae = nommae;
       this.altura = altura;
       this.peso = peso;
       this.exames = exames;
       this.contatos = contatos;
       this.tratamentos = tratamentos;
       this.historicoclinicos = historicoclinicos;
    }

1 Resposta

romarcio

Vamos dizer que tenho uma classe Pessoa, o mapeamento dela será:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="br.com.model">

    <class mutable="true" name="Pessoa" table="PESSOAS">

        <id name="id" column="ID" type="long" unsaved-value="null">
            <generator class="identity"/>
        </id>

        <property name="nome" column="NOME" type="string" length="40"/>
    </class>
</hibernate-mapping>

Agora o mapeamento da classe PessoaFisica, que é herança de Pessoa:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="br.com.model">

        <!--Cria herança no banco de dados-->
        <joined-subclass name="PessoaFisica" table="PESSOAS_FISICAS" extends="Pessoa">
            <key column="ID" foreign-key="FK_PESSOA_FISICA"/>
            <property name="cpf" column="CPF"/>
            <property name="rg" column="RG"/>
            <property name="sexo" column="SEXO" type="string" length="2"/>
        </joined-subclass>

</hibernate-mapping>
Criado 5 de junho de 2011
Ultima resposta 5 de jun. de 2011
Respostas 1
Participantes 2