我遇到了两个实体的问题,这两个实体的关系应该是一对多,多对多。让我向您展示一下:有些用户可以创建和参与活动。因此,一个活动可以有多个用户,只有一个活动创建者,同时用户可以创建并属于许多活动。
所以我做了这样的事情:
class User {
static hasMany = [activities:Activity, activitiesCreated: Activity]
static mappedBy = [activitiesCreated: "creator"]
...
}
class Activity{
static hasMany = [users:User]
static belongsTo = [users:User]
Usuario creator
...
}
这引发了一个运行时异常,就是这个: 没有所有者在多对多关系中的域类[类用户]和[类活动]之间定义。示例:static belongsTo = Activity
如果我不尝试实现一对多,多对多关系可以正常工作,所以这不会是问题。
这就是我被困住的地方:/
答案 0 :(得分:4)
我会有第三个实体来实现多对多的关系。例如,假设将活动的实际执行表示为事件,这意味着事件具有一个或多个活动,时间戳/时间范围以及一个或多个参与用户。用户可以创建一个或多个活动,并且通过相同的标记,Activity的所有者将被视为拥有该活动。