2017-09-21 191 views
0

我有一個擁有許多管理器(用戶類)&代表(用戶類)的帳戶類。如何在域類之間創建多個一對多關係

class Account { 
    static hasMany = { reps: User, managers: User } 
} 

然後,我有一個用戶類屬於一個帳戶。用戶使用User類中的Role Enum區分爲經理或代表。

class User { 
    static belongsTo = { account: Account } 
    Role role 
} 

的問題是,當我創建任何類型的用戶,並保存它,Grails的最終添加該用戶管理人員和在帳戶對象銷售代表集。

我知道我需要在這裏使用mapped_by,但我不明白它應該如何使用。經理和代表由用戶類中的角色枚舉區分。

我看過幾個計算器問題#1#2但是大多數時候,問題都可以通過其他關係來解決。

我特別想在帳戶和用戶類之間使用2個一對多的關係。

編輯:代碼初始化一個代表:

def addRep(manager) { 
    User rep = new User(account: manager.account, 
         role: Role.REP) 
    rep.save(flush: true, failOnError: true) 
} 
+0

「問題是,當我創建的用戶任何類型並保存它,Grails最終將該用戶添加到帳戶對象中的經理和代表集。「 你可以粘貼該「創建」的代碼? – bassmartin

+0

請檢查編輯 –

回答

0

你需要指定的關聯將用於:

def addRep(manager) { 
    User rep = new User(role: Role.REP) 
    manager.account.addToReps(rep) // This will do the bi-association 
    rep.save(flush: true, failOnError: true) 
} 
相關問題