Matías,
Mandá un ejemplo de clase padre e hijo con sus mappings con los que tengas
problemas.

   Diego


2010/5/18 Matias Veleda <[email protected]>

> Hola,
>
> Les cuento la situación en la que me encuentro a ver si pueden
> ayudarme o guiarme un poco en la solución. Tengo una aplicación que
> tiene que lidiar con una base de datos ya diseñada y en funcionamiento
> desde hace rato. No tengo demasiada autonomía sobre la BD ya que
> además es usada y administrada por otras aplicaciones como META4 por
> ejemplo.
> El tema en este caso son las claves compuestas. Se que no es
> recomendado utilizarlas y que de alguna manera es alejarse del diseño
> de objetos y acercarse al diseño de bases de datos, pero en este caso
> (y contra mi voluntad) digamos que tengo que respetar estas claves
> compuestas.
> El problema se presenta en qué NH no se da cuenta cuando es una
> inserción o cuando es una actualización, de manera que, después de
> investigar un poco en internet buscando alternativas encontré que la
> mayoria proponen diferenciar a mano si es un Update() o un Save().
> Ahora bien, algunas entidades obviamente funcionaron bien, pero me
> pasa que cuando tengo entidades padre (cuya clave es compuesta) que
> tienen hijos (cuyas claves son compuestas también) que al querer
> persistir los hijos me da error, al parecer porque no puede
> identificar si debe hacer un Update() o un Save() con ellos. Es decir,
> el padre lo podría persistir correctamente pero al llegar a los hijos
> falla.
> A alguno le ha tocado lidiar con este tema? Y si es asi, qué
> soluciones encontraron? Una posible solución podría ser eliminar los
> Cascades y realizar el mismo mecanismo manual con los hijos, es decir,
> verificar si existen ya en la BD, y determinar si es Update() o
> Save(). Esto calculo va a funcionar pero por ahi hay alternativas
> mejores.
>
> Perdón lo extenso del planteo, y si algo no quedó claro me dicen e
> intento explicarlo mejor. Desde ya muchas gracias por cualquier dato
> que me puedan compartir para darle una solución viable a este tema.
>
> Saludos,
>
> Matias.-
>
> --
> 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

Responder a