La clase Persona sabe algo de sus solecitudes ?
bueno... el tema es que seguis con la tablas per NH no te sirve si pensas en
tablas, tenes que pensar en objetos y relaciones entre objetos, leer algo de
DDD, aggregate roots y cosas por el estilo.

2011/4/5 Dennis Alba <alba2...@gmail.com>

> a ver, de la forma en que esta estructurado las clases y en
> consecuencia, las tablas es que una Solicitud tiene un objeto Persona,
> por consiguiente, la tabla Solicitud tiene el Id de Persona.
> Entonces lo que quiero es que cuando elimine a una persona se me
> eliminen todas las ocurrencias de esa persona que se encuentra en la
> tabla solicitudes, es esto lo que quiero lograr.
> como es este el entorno, entonces uso un references en el mapeo que
> ves y es ahi donde unico puedo poner las opcion en cascade, Por
> cierto, segun Jose "el Cascade ahi significa otra cosa" es cierto
> esto???
>
> El 05/04/11, Fabio Maulo <fabioma...@gmail.com> escribió:
> > claro
> > lo que haces en Solicitud se propaga en Persona.
> > que es que estas borrando ?
> >
> > 2011/4/5 Dennis Alba <alba2...@gmail.com>
> >
> >> Jose, por mas que lo piense e investigue en internet, todo tiende a
> >> que el objetivo del cascade si es ese.
> >> este es uno de los mensajes mas comunes
> >> "cascade="all" - it tells NHibernate that all events (like save,
> >> update, delete) should be propagated down. Calling
> >> session.SaveOrUpdate(product) will save (or update) the product itself
> >> but also the same event will be applied to all depending objects."
> >>
> >> asi que si me pudes ayudar como se hace esto que no sea por el cascade
> >> .All() te lo agradeciera
> >>
> >> El 04/04/11, José F. Romaniello <jfromanie...@gmail.com> escribió:
> >> > El cascade ahí significa otra cosa.
> >> > Lo dejo picando para que la pienses.
> >> >
> >> > El 04/04/11, Banzai <alba2...@gmail.com> escribió:
> >> >> Saludos tropa estoy presentando el siguiente problema con fluent,
> >> >> tenmgo dos clases, Persona y Solicitud , donde la 2da tiene una
> >> >> instancia de la 1ra, lo que en el mapeo seria un References
> >> >> este es la clase de mapeo de solicitud
> >> >>
> >> >>     public class MapeoSolicitud: ClassMap<Solicitud>
> >> >>     {
> >> >>         MapeoSolicitud()
> >> >>         {
> >> >>             // nombre de la tabla
> >> >>             Table("P_SOLICITUD");
> >> >>
> >> >>             // Llave primaria
> >> >>             Id(x =>
> >> >>
> >>
> x.IdSolicitud).Not.Nullable().Length(11).Column("SOL_ID_SOL").GeneratedBy.Native();
> >> >>
> >> >>             // Campos de la tabla
> >> >>             Map(x =>
> >> >> x.TipoPas).Column("PAS_TIPODC").Not.Nullable().Length(15);
> >> >>             Map(x => x.fechaSol).Column("FECHA_SOL").Nullable();
> >> >>
> >> >>             // relaciones con otras clases
> >> >>             References(x =>
> >> >> x.personaSol).Column("PERSOL").Cascade.All();// relacion con personas
> >> >>         }
> >> >>     }
> >> >> }
> >> >>
> >> >> como pueden apreciar en la relacion con persona le tengo puesto
> >> >> Cascade.All() con el objetivo que haga todas las cambios (update,
> >> >> delete) igual en los hijos, pero cuando quiero eliminar una persona
> >> >> que esta referenciada por una solicitud me da la siguiente exception:
> >> >>
> >> >>
> >> >> could not delete: [MapeoSimple.EntidadesPersistentes.Persona#1][SQL:
> >> >> DELETE FROM P_PERSONA WHERE PER_ID_PER = ?]
> >> >>
> >> >> cuyo innerexception es
> >> >>
> >> >> Cannot delete or update a parent row: a foreign key constraint fails
> >> >> (`mapeosimple/p_solicitud`, CONSTRAINT `FK587B9A7AE89ACB8D` FOREIGN
> >> >> KEY (`PERSOL`) REFERENCES `p_persona` (`PER_ID_PER`))
> >> >>
> >> >> donde PER_ID_PER es la llave primaria en la BD de la Persona
> >> >>
> >> >> Alguien me puede decir que ocurre??
> >> >> Gracias
> >> >>
> >> >> --
> >> >> 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
> >> >
> >> > --
> >> > Enviado desde mi dispositivo móvil
> >> >
> >> > --
> >> > 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
> >>
> >> --
> >> 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
> >>
> >
> >
> >
> > --
> > Fabio Maulo
> >
> > --
> > 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
>
> --
> 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
>



-- 
Fabio Maulo

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

Responder a