2010-08-24 28 views
15

Escribo una aplicación multiproceso en Grails y los subprocesos adicionales necesitan acceso a GORM/Hibernate. Cuando intentan acceder a GORM, recibo el error "org.hibernate.HibernateException: ninguna sesión de Hibernate vinculada al hilo, y la configuración no permite la creación de una no transaccional aquí".¿Cómo puedo vincular una sesión de Hibernate a un hilo en Grails?

Bien, ¿alguien me puede guiar en la mejor manera de configurar los hilos para tener acceso? El mensaje de error casi suena como que solo necesita cambiar algunas opciones de configuración, pero siento que no es tan simple ...

Respuesta

14
+6

Los segundos dos enlaces están rotos, ¿cambió la ubicación? – Kevin

1

con NewSession también funcionará. En mi caso, tengo actualizaciones de baja prioridad donde la última actualización siempre puede "ganar". version: false también es importante aquí para evitar la excepción StaleObjectException:

 Thread.start { 
     try { 
      Widget.withNewSession { 
       xxx() 
       log.info "Asynchronously did some updates." 
      } 
     } catch (Exception ex) { 
      log.error "Failed to asynchronously do something...", ex 
     } 
    } 
+0

Esta es la respuesta que estaba buscando. _Way_ mejor que usar 'withTransaction' si estás haciendo algunas actualizaciones en el fondo que deseas que aparezcan mientras se están realizando. – aroth

Cuestiones relacionadas