2012-01-14 17 views
1

ドメインクラス設定ツールに命令的アクションを持たせる方法はありますか?これは私が働くことを望むものです、それは他の方法で可能でしょうか?Grails:GORMでドメインクラスプロパティが設定されている場合のアクションの実行方法

ドメインクラス:

Class ExampleDomain { 
    BigDecimal someNumber 
    def setSomeNumber = {setVal -> 
    println "Today is a good day to be the number: ${setVal}" 
    } 

} 

は私だけonUpdateとそのようなことにイベントをバインドすることができまたはJavaオブジェクト・ドライブ・イベントへの変更を持ってする方法はありますか?例えば

def thisThing = new ExampleDomain(someNumber:3.0) //prints "Today is a good day to be the number: 3.0" 
thisThing.someNumber = 5.8 //prints "Today is a good day to be the number: 5.8" 
thisThing.save() //prints nothing 

が可能振る舞いことですか?

答えて

3

あなたが代わりにクロージャのgetter/setterメソッドを定義することによってこれを行うことができます。注意点としては

//prints "Today is a good day to be the number: 5.8" 
new ExampleDomain().someNumber = 5.8 
+0

ため

Class ExampleDomain { BigDecimal someNumber void setSomeNumber(someNumber) { println "Today is a good day to be the number: ${someNumber}" this.someNumber = someNumber } BigDecimal getSomeNumber() { someNumber } } 

作品:あなたはたとえば動的何かを、行っていない場合は、 getter( 'getSomeNumber()')は、単にそれを含めることはできません。 Groovyは自動的にセッターとゲッターを作成します(http://groovy.codehaus.org/Groovy+Beans)ので、デフォルトの実装を基本的にオーバーライドしています。 – OverZealous

関連する問題