2012-04-26 6 views
0

내가 좋아하는 도메인 클래스가있는 경우 :Grails 명령 바인딩 - 관계가있는 도메인 클래스 - 가능합니까?

class A { 
short aCode 
//... 
static hasMany = [bs : B] 
static mapping = { 
    id column: 'a_code' name: 'aCode' 
} 
} 

class B { 
    long bCode 
    static belongsTo = [a: A] 
    id column: 'b_code' name: 'bCode' 
} 

을 그리고 명령에 B 클래스를 사용하려고 :

class SomeCommand { 
    List<B> bs = ListUtils.lazyList([], FactoryUtils.instantiateFactory(B)) 
} 

이 aCode에 대한 나의 입력해야합니다 :

<input type='text' name='bs[0].a.aCode' /> 

왜이 grails 컨트롤러에 묶여 있지 않습니까? command.bs[0].a은 바인딩 후에 null로 유지됩니다.

Grails 2.0.3을 사용 중입니다.

답변

0

사실 명령 개체와 목록을 사용하여 데이터 바인딩이 작동하지 않습니다. 이를 위해 JIRA이 있습니다.

0

아무 관계없이 바인딩을했습니다.

어떻게 작동하는지 잘 모르겠습니다.

A (상위), 용
class SomeCommand { 
    List<B> bs = ListUtils.lazyList([], FactoryUtils.instantiateFactory(B)) 
} 

<input type='text' name='bs[0].a.aCode' /> 

많은 B (어린이)을 가지고 B는 A.

예에 속한다. A는 10Bs (bs [0] ~ bs [9])입니다. 입력을 바인딩 할 때 항상 이와 같은 것을 사용할 수 있습니다.

<input type="text" name="a.aCode" /> 

<input type="text" name="bs[0].bCode" /> 
<input type="text" name="bs[1].bCode" /> 
.... 
.... 

어린이 (B)에서 부모 (A)로 데이터를 바인딩하는 방법을 잘 모릅니다.

+0

예를 들어 B에서 A를 수동으로 바인딩하고 있습니다. Grails 메일 목록의 사용자가 JIRA에게 다음과 같이 지적했습니다. http://jira.grails.org/browse/GRAILS-5582 –

관련 문제