2009-06-26 4 views
1

즉 내가이 개 도메인이Grails belongsTo,해야합니까?

을 (그것은 이전에 작업을해야 Grails를 1.1.1)의 바로 문제 가자 : 사용자 및 상세 같이 :

Class User { 
    String userName ; 
    ..... // another fields 

    static hasMany = [details:Detail]; 
} 

Class Detail{ 
    String detailName ; 
    ... // another fields 

    static belongsTo = [user:User]; 
} 

을 이제 내가 한 경우 :

def user = User.get(1); 
Detail.findAllByUser(user); 

왜 오류가 발생합니까?

하지만 (사용자 추가)

Class Detail{ 
     String detailName ; 
     ... // another fields 

     User user; 
     static belongsTo = [user:User]; 
    } 

상세

에 수정을 할 경우 보통처럼 작동합니다 ...

는 belongsTo를를 사용하는 효과가있다? 아니면 여기서 실수를 했나요?

답변

3

예를 들어 일반적으로 세부 정보에 액세스하는 방법이 아닙니다. 세부 정보는 사용자 인스턴스를 통해 액세스됩니다 (예 :

+0

) 좋습니다. hasMany는 적합합니다. belongsTo는 어때? 사용자가 hasMany를 입력했는지 여부를 명시해야합니까? – nightingale2k1

+4

아니요, Detail 클래스에 belongsTo가있을 필요는 없습니다. 그러나 생략하면 삭제가 계단식으로되지 않습니다. 예를 들어 사용자를 삭제하면 GORM이 해당 사용자와 관련된 모든 세부 레코드를 자동으로 삭제하도록 할 수 있습니다. 이를 자동으로 관리하려면 belongsTo in Details가 필요합니다. 당신의 상황에서 나는 belongsTo를 유지할 것입니다. –

+0

John에게 감사드립니다. 그것은 많은 도움이된다. – nightingale2k1