domingo, 1 de noviembre de 2009

Introspección y GroovyClassLoader

Varios truqitos en uno para cuando en algun sitio configureis el nombde de la clase con la que se ha de trabajar y tengais que usarla:



class CosasRarasTests extends GrailsUnitTestCase {

def sessionFactory

protected void setUp() {
super.setUp()
}

protected void tearDown() {
super.tearDown()
}

void testSomething() {
GroovyClassLoader classLoader = new GroovyClassLoader()


String domainClass = "User"
String enabledFieldName = "enabled"
String usernameFieldName = "username"
String passwordFieldName = "password"
def user = classLoader.loadClass(domainClass).newInstance()
user."$usernameFieldName" = "a"
user."$passwordFieldName" = "12345"
user."$enabledFieldName" = true

sessionFactory.currentSession.save(user)


println User.findAll().size()

}
}




Se usa la inyección del sessionFactory debido a que el classLoader parece que no carga la clase proxy creada por GORM, sino solamente la entidad mapeada.

No hay comentarios:

Publicar un comentario