我试图通过Grails / Gorm实现以下目标:
有些用户是讲师。一些用户可以成为几位讲师的助手,而且几位讲师可以有几位助手。
我尝试为用户和讲师之间的现有一对一关系添加额外的多对多关系,但保持belongsTo 。
这就是我之前所拥有的:
class User {
...
Lecturer lecturer
}
class Lecturer {
...
static belongsTo = [user:User]
}
然后我添加了多对多关系:
class User {
...
Lecturer lecturer
static hasMany = [lecturers: Lecturer]
}
class Lecturer {
static belongsTo = [user:User, assistants:User]
static hasMany = [assistants: User]
}
我得到三张桌子:
用户:
------------------------------
| id | .. | lecturer_id | .. |
------------------------------
讲师:
-----------
| id | .. |
-----------
user_lecturer:
-----------------------------------
| user_lecturers_id | lecturer_id |
-----------------------------------
当我现在在没有助理的情况下致电讲师助理时,我会得到一个用户。这是不正确的,因为表是空的。所以,我猜这个关系被解释为一对多,并且给了我讲话者匹配的用户。
诀窍是什么? (mappedBy?)
提前致谢。