Si, estas seteando ese valor a null (hasta lo mandaste acá en pseudo codigo)
Sección
 IdExamen = null
 Nombre = "Sección modificada"

2011/1/18 Argons <[email protected]>

> Tengo un problema en el cual estuve luchando todo el día, es muy
> extraño, lo que pasa es q tengo un requerimiento de copiar todo un
> curso (la aplicación sirve para crear cursos tipo moodle) con
> examenes, componentes, imagenes, etc, etc en base a uno ya existente.
> Lo que hice fue primero obtener todo el grafo comenzando por el curso,
> la estructura es más o menos así:
>
> -Curso
> --Componentes
> --Examenes
> ----Seccion
> ------GrupoPreguntas
> ---------Preguntas
> -----------Respuestas
> etc.
>
> La estructura es algo compleja, por lo que primeramente obtuve la raíz
> de todo q es el curso y luego cargué todo el grafo, y luego hice un
> deep clone sobre el curso mediante serialización y luego puse en 0 los
> IDs de todas las entidades para poder grabar. Todo graba bien solo que
> al momento de hacer el flush se modifican los valores originales en la
> BD, más o menos así por ejemplo
>
> ORIGINAL:
>
> Examen
>  IdExamen = 1
>  Nombre = "Examen 1"
> Seccion
>   IdSeccion = 1
>   IdExamen = 1
>   Nombre = "Sección 1"
>
> MODIFICADO:
>
> Examen
>  IdExamen = 0
>  Nombre = "Examen modificado"
> Sección
>  IdSeccion = 0
>  IdExamen = null
>  Nombre = "Sección modificada"
>
> Y me sale la siguiente consulta extra
>
> UPDATE Seccion SET IdExamen = null WHERE IdSeccion = 1
>
> Asi que al final el valor original en la base se queda con NULL. Estoy
> haciendo algo mal?
> Gracias de antemano por la ayuda.
> Ariel
>
> --
> 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

Responder a