2010-02-23 2 views
0

나는 User, Role, Company 도메인을 가지고 있습니다. 사용자 및 역할에는 m : n 관계가 있고 회사 대 사용자는 1 : m이며 사용자 대 회사는 1 : 1입니다. 사용자 도메인 정의에 문제가 있습니다. 여기있다 :하나의 도메인에서 2 belongsTo를 갖는 문제를 해결하는 방법

class User { 
static hasMany = [authorities: Role ] 
static belongsTo = [ Role , Company ] 
} 

내가 user.company 나에게 자신이 할당 된 회사를 줄 수 있도록 사용자로부터 회사를 액세스하고 싶습니다. 이 수정은 허용되지 않습니다 : 또한이 작업을 수행 할 수있는 옵션이 아니라고

Unexpected node type: EXPR found when expecting type: LABELED_ARG at line: 9 column: 41. File: /Users/alfred/Applications/grails_projects/extramile/grails-app/domain/fbm/extramile/User.groovy @ line 9, column 41. 

참고 : 여기에

static belongsTo = [ Role , company: Company ] 

오류의

static belongsTo = [ role: Role , company: Company ] 

사용자 역할이 m을 가지고 있기 때문에 : n (이미 'authorities'변수로 지정됨).

다른 해결 방법은 있습니까? 감사. 내가 제대로 이해하면

+0

사용자 클래스가 역할에 속한 이유는 무엇입니까? – Blacktiger

+0

나는 acegi 플러그인을 사용하고 있으며 그 접근 방식이다. 나는 단순히 사용자를위한 템플릿 도메인을 확장하고있다. – firnnauriel

답변

0

이 작동합니다 :

class User { 
    static hasMany = [authorities: Role ] 
    static belongsTo = [ Role , Company ] 
    Company company 
} 

나는 그것이 당신의 사용자, 즉 회사가 모두 삭제 삭제, 다른 방법으로 주위를 회사 소유가 아닌 것은 이상하다는 생각을 떨칠 수 없다 해당 회사의 사용자. 어쨌든, 나는 당신의 도메인을 모른다. 그래서 나는 입을 다물 것이다!

+0

예, 이것은 내 질문을 게시 한 후 내가 계획 한대로 작동했다. 나는 다시 내 자신의 질문에 대답해야하지만 어제 그것을 잊어 버렸어 : 피하지만 여전히, 시간을내어 주셔서 감사합니다 : – firnnauriel

+0

btw, 도메인에 대한 우려에 관해서는, 어떻게 'belongsTo'작동합니까? 동적 메서드 (addTo * 및 removeFrom *)를 노출하고 싶기 때문에 추가했습니다. – firnnauriel

+0

GORM이 참조 및 계단식 설정을 처리하도록하려면 컬렉션에 addTo 및 removeFrom 만 필요합니다. Grails 문서는 belongsTo를 사용했을 때의 결과에 대해보다 자세한 설명을 제공합니다. –

관련 문제