Pergunta

altEmailAddress(blank: true, nullable: true, validator: {
    if (it == null || it == '') {
        return true
    } else {
        return (User.countByEmailAddress(it) > 0 && User.countByAltEmailAddress(it) > 0)
    }
}

Stack Trace:

Testcase: testFindValidEmailAddress took 0.429 sec
    Caused an ERROR
null
java.lang.StackOverflowError
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
    at com.clearlyINNOVATIVE.model.User$__clinit__closure7_closure13.doCall(User.groovy:36)
Foi útil?

Solução

Você deve usar com a newsession - veja http://adhockery.blogspot.com/2010/01/upgrining-grails-11-12.html

Editar: adicionado para 1.1.x:

Se você ainda não está usando o 1.2 e o WithNewsession () não está disponível, você pode conectá -lo no bootstrap:

import org.hibernate.Session
import org.springframework.orm.hibernate3.HibernateCallback
import org.springframework.transaction.support.TransactionSynchronizationManager
import org.springframework.orm.hibernate3.SessionHolder
import org.springframework.orm.hibernate3.HibernateTemplate

class BootStrap {

   def grailsApplication
   def sessionFactory

   def init = { servletContext ->
      for (domainClass in grailsApplication.domainClasses) {
         domainClass.metaClass.static.withNewSession = { Closure callable ->
            HibernateTemplate template = new HibernateTemplate(sessionFactory)
            SessionHolder sessionHolder = TransactionSynchronizationManager.getResource(sessionFactory)
            Session previousSession = sessionHolder?.session
            try {
               template.alwaysUseNewSession = true
               template.execute({ Session session ->
                  sessionHolder.addSession(session)
                  callable(session)
               } as HibernateCallback)
            }
            finally {
               if (previousSession) {
                  sessionHolder.addSession(previousSession)
               }
            }
         }
      }
   }

   def destroy = {}
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top