2012-01-14 2 views
1

도메인 클래스 설정자가 명령형 작업을 수행하도록하는 방법이 있습니까? 이것이 내가 원하는대로 일하는 것이지, 다른 방법이 가능 할까?Grails : GORM에서 도메인 클래스 속성을 설정할 때 작업 수행 방법

도메인 클래스 :

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

} 

나는 단지 그런 onUpdate의 이벤트와 일을 결합하거나 자바 객체 드라이브 이벤트에 대한 변경을하는 방법이 있나요? 예를 들어

:

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

대신 폐쇄의 게터/세터 메소드를 정의하여이 작업을 수행 할 수 있습니다 : 참고로

//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 [자동으로 setter 및 getter 생성] (http://groovy.codehaus.org/Groovy+Beans) 기본적으로 기본 구현을 재정의합니다. – OverZealous

관련 문제