如何在域类之间创建多个一对多关系
问题描述:
我有一个拥有许多管理器(用户类)&代表(用户类)的帐户类。如何在域类之间创建多个一对多关系
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)
}
答
你需要指定的关联将用于:
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)
}
“问题是,当我创建的用户任何类型并保存它,Grails最终将该用户添加到帐户对象中的经理和代表集。“ 你可以粘贴该“创建”的代码? – bassmartin
请检查编辑 –