Los composite-IDs en Java van perfeCTos... En .NET los pretendo usar
en el próximo proyecto... a no ser que realmente den problemas...
alguno tiene más info al respecto?

El 31/01/07, Dario Quintana<[EMAIL PROTECTED]> escribió:
>
> Uuuuuuuuh !! perdón ! No me dí cuenta que era composite !!! Sorry jeje.
>
> Bueno amigo, creo q estás solo entonces.
> Nunca trabajo por compuestas, por ese mismo motivo, y tampoco ví
> alguien que lo haga, o sino es muy timido :)
>
> En todo este tiempo de usar NHibernate arribé a que con:
>
> -composite-id
> -remoting
> -webservices
>
> ...no es soplar y hacer botellas, te va a doler un poco la cabeza con
> estos (mi opinión y expiencia personal).
>
> Conclusión:
>
> Hacé lo que te decían: Vas a tener que borrar primero el Hijo (pero
> borrarlo con Delete).
>
>
> On 1/31/07, Chili <[EMAIL PROTECTED]> wrote:
> >
> > La tabla Email (hija) tiene una FK a la tabla DatosPersonales, pero no
> > puede ser null, pues forma parte de la clave primaria de la propia
> > tabla Email. Es decir, mi tabla Email es así:
> >
> > ---------------------------------------
> > |         Email                    |
> > --------------------------------------
> > | PK(email, idpersonales)  |
> > | FK(idpersonales)            |
> > ---------------------------------------
> >
> > idpersonales es clave primaria de la tabla DatosPersonales. Por tanto,
> > no puede ser NULL. Esto quiere decir que tengo que hacer el delete
> > individual del Email ya que la actualización de DatosPersonales
> > necesita que las foreign keys puedan ser NULL para borrar los objetos
> > perdidos?
> >
> > On 31 ene, 20:10, "Dario Quintana" <[EMAIL PROTECTED]>
> > wrote:
> > > Si, ningun problema:
> > >
> > >  public int Guardar(ActividadPlan entity)
> > >         {
> > >             if (IsValid(entity, Validate.Entity))
> > >             {
> > >                 try
> > >                 {
> > >                     _ActividadPlanData.BeginTransaction();
> > >                     _ActividadPlanData.SaveOrUpdateObject(entity);
> > >                     _ActividadPlanData.CommitTransaction();
> > >                 }
> > >                 catch (Exception ex)
> > >                 {
> > >                     _ActividadPlanData.RollBackTransaction();
> > >                     throw ex;
> > >                 }
> > >             }
> > >             return entity.IdActividadPlan;
> > >         }
> > >
> > > Tambien adjunto la capa de abajo: ActividadPlanData, y referencia de
> > > más abajo: BaseRepository, para que veas todo el camino. Y no hay nada
> > > de distinto en lo que vos queres hacer.
> > > Te fijaste si la columna de la tabla hija (en la FK) acepta null ?
> > > Controlá nuevamente los mapping, como yo lo hice, funcionó.
> > >
> > > On 1/31/07, Chili <[EMAIL PROTECTED]> wrote:
> > >
> > >
> > >
> > >
> > >
> > > > He estado mirando tu código, y básicamente es a lo que yo me refería.
> > > > Borras un elemento de tu colección, y a continuación salvas tu clase
> > > > padre (la actualizas) y el nhibernate se ocupa de todo. He visto algo
> > > > en un mapping que no sé para qué sirve, a ver si me lo podrías
> > > > explicar: unsaved-value="0".
> > >
> > > > Como no sé lo que estoy haciendo mal, ¿podrías pegar aquí tu método
> > > > Guardar de ActividadPlanBL?
> > >
> > > > Saludos!
> > >
> > > > On 31 ene, 01:29, "Dario Quintana" <[EMAIL PROTECTED]>
> > > > wrote:
> > > > > Adjunto un pedazo de codigo, explico algo del codigo:
> > >
> > > > > Son 2 entidades:
> > >
> > > > > -ActividadPlan (padre)
> > > > > -LaborActividadPlan (hija)
> > >
> > > > > tambien mando un ejemplo de form con la funcionalidad, para que vean
> > > > > algo del código:
> > >
> > > > > - frmLaboresPorActividad.cs
> > >
> > > > > Bien lo que hago es asignar a "bsource" (que es un bindingsource) la
> > > > > lista de las LaborActividadPlan. Cuando quiero eliminar un hijo, me
> > > > > "paro" sobre el hijo y hago:
> > > > > bsource.RemoveCurrent();
> > >
> > > > > y despues le doy Guardar:
> > >
> > > > > this.ActividadPlanBL.Guardar(this.ActividadPlan);
> > >
> > > > > Solamente guardo el padre, el hijo se borra solo, NHibernate se dá
> > > > > cuenta solito y lo elimina.
> > >
> > > > > Tambien adjunto los mapping para que vean.
> > >
> > > > > Ahora despues la seguimos...ahora tengo que salir..nos vemos gente
> > >
> > > > > On 1/30/07, Ezequiel Jadib <[EMAIL PROTECTED]> wrote:
> > >
> > > > > > si al elemento que eliminas en la lista no le haces un delete no te 
> > > > > > va a
> > > > > > funcionar
> > > > > >  ________________________________
> > >
> > > > > > rdi2k | Ezequiel Jadib | MSN: [EMAIL PROTECTED] | Blogs:
> > > > > >http://geeks.ms/blogs/ejadib/(ES) - ejadib.wordpress.com (EN)
> > >
> > > > > > ----- Original Message -----
> > > > > > From: Chili
> > > > > > To: NHibernate-Hispano
> > > > > > Sent: Tuesday, January 30, 2007 7:42 PM
> > > > > > Subject: [NHibernate-Hispano] Re: Problemas con un update
> > >
> > > > > > Lo que me dices es lo que intentaba hacer, es decir, elimino el
> > > > > > elemento de la lista en memoria, luego hago el update de la 
> > > > > > persona, y
> > > > > > ahí es donde me da error, por lo que ya no puedo seguir.
> > >
> > > > > > On 30 ene, 22:45, "Andrés G. Aragoneses [ knocte ]" <[EMAIL 
> > > > > > PROTECTED]>
> > > > > > wrote:
> > > > > > > Chili escribió:
> > >
> > > > > > > > Eso de hacer el delete de la propia entidad ya tiene más 
> > > > > > > > sentido :).
> > > > > > > > No obstante, como yo también soy un principiante, me gustaría 
> > > > > > > > que
> > > > > > > > alguien que estuviese más ducho me dijera si es necesario.
> > >
> > > > > > > > En cuanto a lo del inverse=true, es necesario? Lo digo porque 
> > > > > > > > yo no
> > > > > > > > necesito tener ninguna referencia desde EmailDA a 
> > > > > > > > DatosPersonalesDA, y
> > > > > > > > según tengo entendido, inverse=true, es que puedes dar la 
> > > > > > > > vuelta, es
> > > > > > > > decir:
> > >
> > > > > > > >  Persona 1 - n Direcciones
> > >
> > > > > > > >  Persona.Direcciones[0].Persona
> > >
> > > > > > > Opino lo mismo que tú, que el inverse="true" sólo es necesario
> > > > > > > especificarlo en los casos en los que tienes acceso desde los dos
> > > > > > > sentidos de la colección, y sólo en uno de los extremos.
> > >
> > > > > > > Lo que yo haría es hacer dos cosas: eliminar el elemento de la 
> > > > > > > lista,
> > > > > > > hacer SaveOrUpdate en Persona, y luego eliminar con Delete la 
> > > > > > > dirección
> > > > > > > propiamente dicha, y luego Flush.
> > >
> > > > > > >         Andrés [ knocte ]
> > >
> > > > > > > --
> > >
> > > > > --
> > > > > Dario Quintanahttp://blog.darioquintana.com.ar
> > >
> > > > >  codigo.zip
> > > > > 8 KDescargar
> > >
> > > --
> > > Dario Quintanahttp://blog.darioquintana.com.ar
> > >
> > >  codigo2.ZIP
> > > 5 KDescargar
> >
> >
> > >
> >
>
>
> --
> Dario Quintana
> http://blog.darioquintana.com.ar
>
> >
>

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

Responder a