0

일대일 연결에서 두 개의 도메인 클래스와 관련된 직선적 인 데이터 바인딩을 시도하고 있습니다.Grails - 데이터 바인딩 일대일 연결이 작동하지 않습니다.

class Request 
{ 
    static hasOne = [form: Form] 

    Form form 
} 

class Form 
{ 
    static belongsTo = [request: Request] 

    String string 
} 

그때 바인딩 다음 데이터 (이 문제를 설명하는 것입니다 ... 실제 데이터 바인딩 양식에서 유래)을 수행합니다 :

Request request = new Request() 
request.properties = ['form.string': 'string value'] 

는 그러나, 나는 결국 여기에 두 클래스의 양식 속성에 대한 Form 개체와 문자열 값이있는 요청 개체 대신 Null 양식 속성이있는 요청 개체를 사용합니다.

답변

0

과 시도는 문제가 실제 클래스와 아니었다 밝혀 있지만,지도 데이터 바인딩에 전달된다. Grails 문서에 따르면 다음과 같이 작동해야합니다.

Request request = new Request() 
request.properties = ['form.string': 'string value'] 

그러나지도가 바뀌면 적절한 바인딩이 생깁니다.

Request request = new Request() 
request.properties = [form: [string: 'string value']] 
0

class Request 
{ 
    Form form 
} 

class Form 
{ 
    static belongsTo = [request: Request] 

    String string 
} 
+0

불행히도이 점은 여전히 ​​동일한 문제입니다. –

+0

영구 데이터베이스를 사용하는 경우이 변경을 위해 마이그레이션을 생성해야합니다. 양식 속성을 두 번 정의하면 "정적 hasOne = [양식 : 양식]"속성을 정의하므로 아래 "양식 양식"을 추가 할 필요가 없습니다. 그게 작동하지 않는다면 정적 클래스 mappedBy = [form : 'none']을 Request 클래스에 추가하십시오. (이것도 마이그레이션을 생성합니다) – agusluc

+0

예제와 동일한 두 클래스를 생성하고 데이터베이스의 모든 테이블을 다시 작성했습니다. 마이그레이션에 대한 걱정은 없습니다.) 불행히도 여전히 같은 문제입니다. 양식 객체는 바인딩에 의해 결코 생성되지 않습니다. 나는 또한 mappedBy를 추가하고 여전히 같은 문제에 대한 아이디어를 시도했다. –

관련 문제