6

Grails 2.0.4 では、次のようなドメイン クラスがあります。

class Foo {

    String pres
    String temp

    static transients = ['temp']

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

BootStrap.groovy では:

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

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

次に、grails run-app を実行すると、次のようになりました。

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

f1 と f2 の違いは何ですか?一時的なメンバーを初期化できませんか?

4

2 に答える 2

1

bindable制約により、デフォルトの動作をオーバーライドできます。通常、デフォルトでバインド可能なプロパティのデータ バインディングを無効にするために使用されますが、他の方法でも使用できると思います。

于 2012-06-25T09:34:34.503 に答える
0

Grails 2 にアップグレードした後、これと同じことに遭遇しました。詳細が必要な場合は、次の 2 つの JIRA エントリを参照してください。

http://jira.grails.org/browse/GRAILS-8972

http://jira.grails.org/browse/GRAILS-9098

しかし、最終的には、あなたの例で行ったのと同じ回避策に頼らなければなりませんでした。

于 2012-06-24T18:58:53.623 に答える