2017-09-21 190 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) 
} 
相关问题