Secciones

Artículos para tus primeros pasos

Si estás empezando a introducirte en el mundo de Groovy y Grails, no te pierdas nuestros artículos básicos: 

Entrevistas con los expertos
 

Los protagonistas te cuentan de qué van los proyectos más importantes del mundo Groovy:


Un proyecto de:
ImaginaWorks
Campus Escuela de Groovy

Grails

Error al salvar un objeto...

yag13 - viernes 30/04/2010

Trabajo con el NetBeans 6.8 y Grails 1.2.1. Me ha sucedido en mas de una ocacion que al salvar un objeto me lanza un error, aunque me lo salva en la base de datos. Y no creo que tenga nada que ver con la base de datos pues la pongo en "create-drop", por lo que al iniciar cada ejecucion se crea nuevamente.

Si a alguien le ha dado el mismo error y sabe como solucionarlo, por fa, ayudenme...

aqui les dejo el error:

Error 500: Executing action [save] of controller [AfiliadoController] caused exception: org.springframework.orm.hibernate3.HibernateSystemException: a different object with the same identifier value was already associated with the session: [Afiliado#9]; nested exception is org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [Afiliado#9]
Servlet: grails
URI: /aplicacionSSVrP/grails/afiliado/save.dispatch
Exception Message: a different object with the same identifier value was already associated with the session: [Afiliado#9]
Caused by: a different object with the same identifier value was already associated with the session: [Afiliado#9]
Class: AfiliadoController At Line: [22]
Code Snippet:

21: def afiliadoInstance = new Afiliado(params)
22: if (afiliadoInstance.save(/*flush: true*/)) {
23: flash.message = "${message(code: 'default.created.message', args: [message(code: 'afiliado.label', default: 'Afiliado'), afiliadoInstance.id])}"

Stack Trace

org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session: [Afiliado#9]

at $Proxy9.saveOrUpdate(Unknown Source)
at AfiliadoController$_closure4.doCall(AfiliadoController:22)
at AfiliadoController$_closure4.doCall(AfiliadoController)
at java.lang.Thread.run(Thread.java:619)
Ayudenme...
Saludos

Re: Error al salvar un objeto...

yag13 - viernes 30/04/2010
se me olvidaba aclarar, que esto me ocurre despues de haber corrido varias veces la aplicacion sin ningun tipo de problema y una vez que aparece, pues no hay dios que lo solucione, siempre da el mismo error...

Re: Error al salvar un objeto...

Nacho - lunes 03/05/2010
¿puedes poner el código donde manipulas el objeto? parece que estás manejando la misma instancia en dos sesiones hibernate a la vez...

Re: Error al salvar un objeto...

yag13 - martes 04/05/2010

bueno, mira, ese mismo error me da cuando intento salvar 3 objetos diferentes, te pongo el codigo:

primera clase:

class ComiteSindical {
    static hasMany = [direccionAdministrativa:DireccionAdministrativa]
    static belongsTo = [seccionSindical:SeccionSindical]
    String nombre
   static searchable = true
    static constraints = {
        nombre(unique:true, blank:false, nullable:false)
       
    }
    String toString(){
        nombre
    }
  
}

 segunda clase:

 class DireccionAdministrativa {
    String nombre

    static hasMany = [ afiliado : Afiliado ]
    static belongsTo = [comiteSindical:ComiteSindical]
    static searchable = true
    static constraints = {
        nombre(unique:true, blank:false, nullable:false)
    }
    String toString(){
        nombre
    }
}

tercera clase:

 class Afiliado{
    String nombre
    String primerApellido
    String segundoApellido
    String solapin
    float salario
    ComiteSindical cs = null
   
   static searchable = true
    static belongsTo = [direccionAdministrativa:DireccionAdministrativa]
 static hasMany = [evaluacionAfiliado:EvaluacionAfiliado]
   
    static constraints = {
        nombre(blank:false, nullable:false, size:2..35)
        primerApellido(blank:false, nullable:false, size:1..35)
        segundoApellido(blank:false, nullable:false, size:1..35)
        solapin(unique:true, blank:false, nullable:false)
        salario()
        cs(blank:true, nullable:true, display:false)
        evaluacionAfiliado(blank:true, nullable:true)
           }

    String toString(){
       "${nombre} ${primerApellido}"
    }

  def beforeInsert = {
      cs=direccionAdministrativa.comiteSindical
  }

    def beforeUpdate = {
      cs=direccionAdministrativa.comiteSindical
  }

}

en la que comienza a dar el error es en  ComiteSindica.

Las controlladoras de cada una de estas clases es generada por el framwork, por eso no las coloco aqui.

Otra cosa, ese error aparece despues de haber corrido varias veces el proyecto y una vez que aparece persiste cuantas veces corras el proyecto.

Gracias de antemano Nacho... 

 

Re: Error al salvar un objeto...

yag13 - jueves 06/05/2010

Problema resuelto...

El problema es con el plugin searchable, se lo quito y deja de dar el error, se lo pongo y da el error...

Algo raro...

Responder al hilo | Volver al foro "Grails" | Volver a los foros