2012-11-15 4 views
0

나는 Grails의 새로운 오전과 나는이 간단한 클래스와 응용 프로그램을 가지고있다. 지금은 아래의 코드를 가지고 그것은 작동하지 않습니다와 나는 그것이 잘못 알고 있지만 어쨌든 그것을 시도 : 작업이 실행될 때업데이트 필드

이제
def updatePersonFieldOnly{ 
def voterInstance = Voter.get(params.id) 
voterInstance.properties=params 

def personInstance = Voter.findById(12) 

voterInstance.person = personInstance 

......some other code to update 
..... 
} 

이, 나는이 오류가 발생했습니다 :

는 속성 값을 변환하는 데 실패 유형이 java.lang.String 인 경우 property person의 필수 유형 proj.Person으로; 중첩 예외가 java.lang.IllegalStateException : [java.lang.String] 유형의 값을 속성 person의 필수 유형 [proj.Person]으로 변환 할 수 없습니다. 일치하는 편집기 또는 변환 전략이 없습니다.

grails의 문서를 읽는 중. 그래서 누구든지이 일에 대해 나를 도울 수 있습니까? 감사.

답변

0

Grails가 "Person"개체로 변환하려고하는 params 맵에 "person"이라는 속성이있는 것 같습니다. 해당 필드를 "person.id"로 변경하면 Grails는 자동으로 해당 ID에 해당하는 Person 객체를 가져 와서 "person"객체와 일치시켜야합니다.

자세한 내용은 "데이터 바인딩 및 단일 종결 연결"절의 DataBinding을 참조하십시오.

+0

좋아, 고마워, 그냥 매개 변수의 이름을 바꿀 필요가 있고, 위의 코드는 이미 필요하지 않습니다. 감사. – noob