Nicolás Marzoni
Mon, 09 Nov 2009 12:55:12 -0800
Muchas gracias Carlos... voy a mirar esos libros que me pasaste. Saludos. On 9 nov, 17:45, Carlos Peix <carlos.p...@gmail.com> wrote: > Hola Nicolas, > > Has llegado por el camino rapido a una de las mayores limitaciones de la > herencia (entre otras muchas). > > Lo cierto es que en tu caso, Alumno y Profesor no son subclases de persona, > son roles que una Persona desempeña ante un cierto contexto. > > Por ejemplo, imaginaque que una persona pueda ser alumno y profesor al mismo > tiempo y que luego pueda dejar de ser uno de los dos. Esto te da la pauta de > que el ciclo de vida del objeto rol (alumno y profesor) es muy distinto del > ciclo de vida de la persona (afortunadamente :-)). > > Incluso, el rol alumno y el rol profesor deberian contener las propiedades > relacionadas con estos roles, estas no deberian estar en la clase persona. > > Si solo hacemos un analisis estructural la solucion de la herencia funciona > bien pero rapidamente queda corta cuando agregamos comportamiento al > analisis. > > Dos libros que tratan muy bien el tema son [1] y [2] pero tambien hay buen > material disponible en [3]. > > Suerte > > [1]http://www.amazon.com/Streamlined-Object-Modeling-Patterns-Implementa... > [2]http://www.amazon.co.uk/Java-Modeling-Color-UML-Enterprise/dp/013011510X > [3]http://martinfowler.com/apsupp/roles.pdf > > ---------------------------------- > Carlos Peix > > 2009/11/9 Nicolás Marzoni <nmarz...@gmail.com> > > > > > > > Hola a todos. > > Tengo el siguiente problema... hice una aplicación en donde estoy > > probando y aprendiendo a usar NH. > > Hasta ahora venía todo bien, pero me encontré con el siguiente > > problema. > > Para hacerlo sencillo: Tengo una clase Persona. Alumno y Profesor > > heredan de persona. Puedo crear los objetos de Alumno y Profesor sin > > ningun problema, siempre y cuando la Persona no exista. > > Es decir, al crear el Alumno me crea el registro en la tabla personas > > y en la tabla alumnos. > > > Mi pregunta es: ¿Como puedo crear un Alumno o Profesor, que hereden de > > una persona que ya esté creada? > > > Les dejo mi archivo de mapeo. > > > <?xml version="1.0" encoding="utf-8" ?> > > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" > > namespace="Entidades" assembly="Entidades"> > > > <class name="Persona" table="Persona" lazy="false"> > > > <id name="Id" column="Id" unsaved-value="0"> > > <generator class="native" /> > > </id> > > > <property name="Nombre"> > > <column name="Nombre" not-null="true" /> > > </property> > > > <property name="Apellido"> > > <column name="Apellido" not-null="true" /> > > </property> > > > <joined-subclass table="Alumnos" name="Alumno"> > > <key column="Id"/> > > <property name="Matricula"/> > > </joined-subclass> > > > <joined-subclass table="Profesores" name="Profesor"> > > <key column="Id"/> > > <property name="Matricula"/> > > </joined-subclass> > > > </class> > > </hibernate-mapping> > > > Muchas Gracias. > > Nicolás- Ocultar texto de la cita - > > - Mostrar texto de la cita - --~--~---------~--~----~------------~-------~--~----~ Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano@googlegroups.com Para más, visite: http://groups.google.com/group/NHibernate-Hispano -~----------~----~----~----~------~----~------~--~---