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
-~----------~----~----~----~------~----~------~--~---