两个班级之间的一对多和多对多的关系? (Grails ORM)

时间:2012-05-18 20:14:23

标签: grails orm gorm

我遇到了两个实体的问题,这两个实体的关系应该是一对多,多对多。让我向您展示一下:有些用户可以创建和参与活动。因此,一个活动可以有多个用户,只有一个活动创建者,同时用户可以创建并属于许多活动。

所以我做了这样的事情:

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

如果我不尝试实现一对多,多对多关系可以正常工作,所以这不会是问题。

这就是我被困住的地方:/

1 个答案:

答案 0 :(得分:4)

我会有第三个实体来实现多对多的关系。例如,假设将活动的实际执行表示为事件,这意味着事件具有一个或多个活动,时间戳/时间范围以及一个或多个参与用户。用户可以创建一个或多个活动,并且通过相同的标记,Activity的所有者将被视为拥有该活动。