Buenas tardes a todos.
Les planteo mi problema: Actualmente tengo una clase Persona abstracta
y luego otras clases Médico, Paciente, Clinica que heredan de Persona.
Hasta ahí todo me funciona correctamente, pero me encotré con el
problema de que un Paciente, puede ser un Médico y/o una Clínica y así
todas las combinaciones posibles.
Estuve leyendo por ahí que esto no se puede hacer con herencia y
algunos proponían hacerlo con Decorator.
Pero la verdad es que no se como arrancar.
Les dejo mi mapeo actual (no está clínica, pero tiene otras
propiedades distintas a Médicos y Pacientes), espero que me puedan
ayudar para pasarlo a Decorator o me den alguna sugerencia.

Desde ya muchas gracias
Maza, Leonardo Javier

El mapeo actual

<?xml version="1.0" encoding="utf-8" ?>

<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="SMSystem.MedLab.Models" namespace="SMSystem.MedLab.Models">
  <class name="Persona" table="Personas" abstract="true" >
    <id name="Id" type="int">
      <generator class="identity"/>
    </id>

    <property name="TipoDocumento" type="int" not-null="false"/>
    <property name="NumeroDocumento" type="int" not-null="false"/>
    <property name="ApellidoNombre" type="String" length="35" not-
null="true"/>
    <many-to-one name="Direccion" class="Direccion" foreign-
key="FK_Personas_Direcciones" fetch="join" not-null="false"/>

    <set name="Telefonos" table="PersonasTelefonos" lazy="false">
      <key column="Persona" foreign-key="FK_PersonasTelefonos_Persona"/
>
      <one-to-many class="Telefono" not-found="ignore"/>
    </set>

    <set name="Emails" table="PersonasEmails" inverse="true"
lazy="false">
      <key column="Persona" foreign-key="PersonasEmails_Persona"/>
      <one-to-many class="Email" not-found="ignore"/>
    </set>

    <!--Mapeo de médicos-->
    <joined-subclass name="Medico" table="Medicos" extends="Persona">
      <key column="Persona" foreign-key="FK_Medicos_Personas"/>

      <property name="Codigo" unique="true" not-null="true"/>
      <property name="FechaInicio" type ="DateTime" not-null="true"/>
      <property name="FechaFin" type ="DateTime" not-null="false"/>

      <set name="Zonas" table="MedicosZonas" lazy="false"
fetch="join">
        <key column="Medico" foreign-key="FK_MedicosZonas_Medico"/>
        <many-to-many class="Zona" column="Zona" fetch="join" foreign-
key="FK_MedicosZonas_Zona"/>
      </set>
    </joined-subclass>

    <!--Mapeo de Pacientes-->
    <joined-subclass name="Paciente" table="Pacientes"
extends="Persona">
      <key column="Persona" foreign-key="FK_Pacientes_Personas"/>

      <property name="Codigo" unique="true" not-null="true"/>
    </joined-subclass>

  </class>
</hibernate-mapping>
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---

Responder a