http://fabiomaulo.blogspot.com/2009/05/empezando-con-nh-mappings.html
dos frase: No usen default-cascade=”save-update”; el cascade hay que declararlo bien y donde corresponde. Recuerden que el cascade no es un solo valor (es comma-separated-values) y no es todo all-delete-orphan. LOL!! 2010/6/18 Jose Selesan <[email protected]> > Tenés razón. El curso se da de alta antes. Se me pasó eso. > > > 2010/6/18 Fabio Maulo <[email protected]> > >> o sea que agregando un Alumno podes dar de alta un nuevo Curso ? >> >> 2010/6/18 Jose Selesan <[email protected]> >> >>> Te paso un extracto de la clase y el mapeo >>> >>> public class Alumno: Persona >>> { >>> public virtual string Matricula { get; set; } >>> public virtual Curso Curso { get; set; } >>> } >>> >>> *** >>> <class name="Persona" table="Personas"> >>> >>> <id name="Id" column="ID"> >>> <generator class="guid.comb" /> >>> </id> >>> <property name="Apellido" /> >>> <property name="Nombre" /> >>> >>> <joined-subclass name="Alumno" table="Alumnos"> >>> <key column="IDPersona"/> >>> <many-to-one name="Curso" column="IDCurso" cascade="save-update"/> >>> </joined-subclass> >>> </class> >>> >>> >>> >>> >>> >>> 2010/6/17 José F. Romaniello <[email protected]> >>> >>>> Ok, entonces no es lo que yo pensaba, podrías igual mostrar la clase >>>> Alumno? >>>> >>>> El 17 de junio de 2010 20:14, Jose Selesan <[email protected]>escribió: >>>> >>>>> Hola José. Sí, estoy usando Save. Voy a tener que leer un poco sobre la >>>>> diferencia entre Save y Persist. >>>>> >>>>> Gracias por el dato. >>>>> >>>>> 2010/6/17 José F. Romaniello <[email protected]> >>>>> >>>>>> Te quería preguntar si podrías mostrar la clase alumno por un lado, y >>>>>> por otro lado, si estas seguro que estas llamando a Save y no a Persist >>>>>> (presentimiento). >>>>>> >>>>>> >>>>>> El 17 de junio de 2010 18:27, Jose Selesan <[email protected]>escribió: >>>>>> >>>>>> Efectivamente. Ahora la pregunta es, como puedo evitar el cascade >>>>>>> sobre alumno (que ahí ni lo tocó) y grabar simplemente la >>>>>>> notificación? >>>>>>> >>>>>>> >>>>>>> >>>>>>> El 17/06/10, Carlos Cocom <[email protected]> escribió: >>>>>>> > Hola Jose >>>>>>> > >>>>>>> > Me parece que esto es por que en la entidad alumno tienes tienes >>>>>>> una >>>>>>> > propiedad curso que esta relacionado supongo a otra entidad y en >>>>>>> esta la >>>>>>> > definiste como lazy = "true". >>>>>>> > >>>>>>> > Al momento de guardar en session.save aun no se ha terminado de >>>>>>> cargar la >>>>>>> > entidad curso >>>>>>> > >>>>>>> > mas detalles >>>>>>> http://nhforge.org/doc/nh/en/index.html#collections-lazy >>>>>>> > >>>>>>> > Saludos >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > >>>>>>> > El 17 de junio de 2010 14:56, Jose Selesan <[email protected]> >>>>>>> escribió: >>>>>>> > >>>>>>> >> Gente, me está sucediendo algo. Tengo una entidad Alumno con un >>>>>>> muchos a >>>>>>> >> muchos con la entidad Padre, por otro lado, tengo una entidad >>>>>>> >> NotificacionPadre, con un many-to-one a Padre: >>>>>>> >> >>>>>>> >> <class name="Notificacion" table="Notificaciones"> >>>>>>> >> >>>>>>> >> <id name="Id" column="ID"> >>>>>>> >> <generator class="guid.comb" /> >>>>>>> >> </id> >>>>>>> >> >>>>>>> >> <discriminator column="Tipo" type="string" /> >>>>>>> >> >>>>>>> >> <property name="Fecha"/> >>>>>>> >> <property name="Texto" length="1000"/> >>>>>>> >> >>>>>>> >> <subclass discriminator-value="1" >>>>>>> name="NotificacionGeneral"> >>>>>>> >> </subclass> >>>>>>> >> >>>>>>> >> <subclass discriminator-value="2" >>>>>>> name="NotificacionPadre"> >>>>>>> >> <many-to-one name="Padre" column="IDPadre" >>>>>>> cascade="none" >>>>>>> >> fetch="join" /> >>>>>>> >> </subclass> >>>>>>> >> </class> >>>>>>> >> >>>>>>> >> Ahora estoy haciendo algo similar a esto: >>>>>>> >> >>>>>>> >> //tengo un id que es el Guid de un alumno >>>>>>> >> var alumno = Session.Get<Alumno>(id); >>>>>>> >> foreach(var padre in alumno.Padres) >>>>>>> >> { >>>>>>> >> var notificacion = new NotificacionPadre{ >>>>>>> >> Fecha = DateTime.Today, >>>>>>> >> Texto = texto, >>>>>>> >> Padre = padre >>>>>>> >> }; >>>>>>> >> Session.Save(notificacion); >>>>>>> >> } >>>>>>> >> >>>>>>> >> Todo esto dentro de una transacción. >>>>>>> >> >>>>>>> >> Ahora bien, me está dando una PersistentObjectException con el >>>>>>> mensaje: >>>>>>> >> *Uninitialized >>>>>>> >> proxy passed to save(). Object: >>>>>>> CursoProxyd41d419af95040a38594f99fcfa4f0e7 >>>>>>> >> *Donde Curso es una propiedad Lazy del Alumno, lo que no entiendo >>>>>>> es por >>>>>>> >> qué quiere hacer un cascade al guardar la Notificacion. ¿Qué >>>>>>> estaré >>>>>>> >> haciendo >>>>>>> >> mal? >>>>>>> >> >>>>>>> >> Gracias! >>>>>>> >> >>>>>>> >> -- >>>>>>> >> Para escribir al Grupo, hágalo a esta dirección: >>>>>>> >> [email protected] >>>>>>> >> Para más, visite: >>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>> > >>>>>>> > -- >>>>>>> > Para escribir al Grupo, hágalo a esta dirección: >>>>>>> > [email protected] >>>>>>> > Para más, visite: >>>>>>> http://groups.google.com/group/NHibernate-Hispano >>>>>>> >>>>>>> -- >>>>>>> Enviado desde mi dispositivo móvil >>>>>>> >>>>>>> Lic. Jose Selesan >>>>>>> Desarrollador Gold Cinco Estrellas >>>>>>> http://jose-selesan.blogspot.com >>>>>>> >>>>>>> -- >>>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>>> [email protected] >>>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>>> >>>>>> >>>>>> -- >>>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>>> [email protected] >>>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>>> >>>>> >>>>> -- >>>>> Para escribir al Grupo, hágalo a esta dirección: >>>>> [email protected] >>>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>>> >>>> >>>> -- >>>> Para escribir al Grupo, hágalo a esta dirección: >>>> [email protected] >>>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>>> >>> >>> -- >>> Para escribir al Grupo, hágalo a esta dirección: >>> [email protected] >>> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >>> >> >> >> >> -- >> Fabio Maulo >> >> -- >> Para escribir al Grupo, hágalo a esta dirección: >> [email protected] >> Para más, visite: http://groups.google.com/group/NHibernate-Hispano >> > > -- > Para escribir al Grupo, hágalo a esta dirección: > [email protected] > Para más, visite: http://groups.google.com/group/NHibernate-Hispano > -- Fabio Maulo -- Para escribir al Grupo, hágalo a esta dirección: [email protected] Para más, visite: http://groups.google.com/group/NHibernate-Hispano
