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

Responder a