2014-04-30 3 views
2

도메인 클래스의 속성에 대한 setter 및 getter를 재정의하는 것이 좋습니다. 내가 세터를 오버라이드 (override)하는 경우grails에서 domain 속성의 setter를 재정의하는 것이 맞습니까?

class Person { 
    String name 
    String capitalizedName 

    String setName(String name){ 
     this.name = name 
     this.searchName = name.replaceAll("[^A-Za-z0-9 ]", "").trim().toUpperCase() 
    } 
} 

및 단위 테스트에서 동적 파인더 사용하려고 :

Person.findByName('Whatever') 

내가

을 얻었다을 우리가 이름을 정리 저장 이름 속성과 capitalizedName와 도메인 클래스가 있다고 가정
java.lang.IllegalArgumentException: Property [name] is not a valid property of class [com.test.Person] 

하지만 런타임에는 제대로 작동합니다.

도메인 클래스의 getter와 setter를 수정할 수 있습니까? 위에서 설명한대로 행동을 성취하는 가장 좋은 방법은 무엇입니까?

답변

4

세터 내가 반환 형식이 원인이 될 것이라고 기대하지 않았다 void

void setName(String name){ 
     this.name = name 
     this.searchName = name.trim().replaceAll("[^A-Za-z0-9 ]", "").replaceAll(" +", " ").toUpperCase() 
} 
+0

의 반환 형식이 있어야합니다,하지만 난 그것을 밖으로 시도하고 문제를 않습니다. – doelleri

+1

Thx, 그것을 알아 채지 못했습니다. 내가 가지고있는 코드베이스가 많은 문제를 안고있는 것처럼 보입니다. –