【问题标题】:One-to-many and many-to-many relationship between two classes? (Grails ORM)两个类之间的一对多和多对多关系? (Grails ORM)
【发布时间】:2012-05-18 20:14:23
【问题描述】:

我在处理两个实体时遇到了问题,这两个实体应该具有一对多和多对多的关系。让我向您展示一个案例:有用户,他们创建并参与活动。因此,一个活动可以有多个用户和一个活动创建者,同时一个用户可以创建并属于多个活动。

所以我做了这样的事情:

class User {

    static hasMany = [activities:Activity, activitiesCreated: Activity]
    static mappedBy = [activitiesCreated: "creator"]
...
}

class Activity{

    static hasMany = [users:User]
    static belongsTo = [users:User]
    Usuario creator
...
}

这引发了一个运行时异常,就是这个: 在多对多关系中,域类 [class User] 和 [class Activity] 之间没有定义所有者。示例:静态 belongsTo = Activity

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

这就是我卡住的地方:/

【问题讨论】:

    标签: grails orm grails-orm


    【解决方案1】:

    我将有第三个实体来实现多对多关系。例如,假设将活动的实际执行表示为一个事件,这意味着一个事件有一个或多个活动、时间戳/时间框架和一个或多个参与用户。用户可以创建一个或多个活动,并且出于同样的原因,活动的所有者将被视为拥有该事件。

    【讨论】:

    • 嗯,这当然可以完成这项工作!现在已经太晚了(这里几乎是午夜),所以我想我明天会试一试。谢谢!
    • @PainyJames 您甚至可以在第三个实体中声明一些辅助方法,使其看起来更像您在帖子中定义的内容。检查this answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-26
    • 2021-09-28
    • 2022-01-05
    • 1970-01-01
    相关资源
    最近更新 更多