如何在域 类 之间创建多个一对多关系
How to create multiple one-to-many relationships between domain classes
我有一个帐户 class,其中有许多经理(用户 class)和代表(用户 class)。
class Account {
static hasMany = { reps: User, managers: User }
}
然后,我有一个用户 class 属于一个帐户。使用用户 class.
中的角色枚举将用户区分为经理或代表
class User {
static belongsTo = { account: Account }
Role role
}
问题是,当我创建任何类型的用户并保存它时,Grails 最终将该用户添加到帐户对象中的经理和代表集中。
我知道我需要在这里使用 mapped_by,但是我不明白应该如何使用它。经理和代表通过用户 class.
中的角色枚举来区分
我看过几个 Whosebug 问题 , #2 但是大多数时候,问题可以通过其他关系得到解决。
我特别想在帐户和用户之间使用 2 个一对多关系 class。
编辑: 初始化代表的代码:
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)
}
我有一个帐户 class,其中有许多经理(用户 class)和代表(用户 class)。
class Account {
static hasMany = { reps: User, managers: User }
}
然后,我有一个用户 class 属于一个帐户。使用用户 class.
中的角色枚举将用户区分为经理或代表class User {
static belongsTo = { account: Account }
Role role
}
问题是,当我创建任何类型的用户并保存它时,Grails 最终将该用户添加到帐户对象中的经理和代表集中。
我知道我需要在这里使用 mapped_by,但是我不明白应该如何使用它。经理和代表通过用户 class.
中的角色枚举来区分我看过几个 Whosebug 问题
我特别想在帐户和用户之间使用 2 个一对多关系 class。
编辑: 初始化代表的代码:
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)
}