2012-06-24 19 views
6

En griales 2.0.4, que hava una clase de dominio de esta manera:¿No se puede inicializar un miembro transitorio?

class Foo { 

    String pres 
    String temp 

    static transients = ['temp'] 

    def beforeInsert = { 
     println "pres: ${pres}" 
     println "temp: ${temp}" 
    } 
} 

En BootStrap.groovy:

def f1 = new Foo(pres: "p1", temp: "t1") 
f1.save() 

def f2 = new Foo(pres: "p2") 
f2.temp = "t2" 
f2.save() 

Entonces griales de gestión de aplicaciones, que tengo:

pres: p1 
temp: null 
pres: p2 
temp: t2 

¿Cuál es la diferencia entre f1 y f2, no se puede inicializar un miembro transitorio?

+3

me pregunto si esto está relacionado con los cambios en el enlace de datos que aparecieron en v2.0.2 (http://grails.org/2.0.2+Release+Notes) donde el enlace de datos de transitorios está excluido por defecto – aldrin

Respuesta

1

El bindable constraint le permite anular el comportamiento predeterminado. Normalmente se usaría para deshabilitar el enlace de datos para una propiedad que normalmente sería enlazable de forma predeterminada, pero creo que también puede usarlo de otra forma.

Cuestiones relacionadas