2012-06-24 25 views
6

In Grails 2.0.4, ho hava una classe di dominio come questo:Impossibile inizializzare un membro transitorio?

class Foo { 

    String pres 
    String temp 

    static transients = ['temp'] 

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

In BootStrap.groovy:

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

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

graal Quindi eseguire-app, ho ottenuto:

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

Qual è la differenza tra f1 e f2, impossibile inizializzare un membro transitorio?

+3

Mi chiedo se questo è correlato alle modifiche al data binding emerse nella v2.0.2 (http://grails.org/2.0.2+Release+Notes) dove l'associazione di dati dei transitori è esclusa di default – aldrin

risposta

1

Il bindable constraint consente di ignorare il comportamento predefinito. In genere viene utilizzato per disattivare l'associazione dei dati per una proprietà che normalmente sarebbe associabile per impostazione predefinita, ma credo che si possa usare anche nell'altro modo.

Problemi correlati