Grails应用中的混合关系

时间:2011-03-05 19:06:27

标签: grails gorm relationship

我有一个名为Event的域类。 Event有许多注册,即在网站上拥有帐户的用户或没有帐户的用户。我希望注册用户能够跟踪他们的事件,因此Event-User关系应该是双向的(用户由Spring Security创建)。仍有注册与用户帐户无关。这很重要,因为活动是一种带有排名的现场比赛,当活动结束时由活动所有者更新。怎么做到这一点?

1 个答案:

答案 0 :(得分:0)

这应该有效:

class User {
    static hasMany = [events:Event]
}


class Event {
    User user
    static constraints = {
       user(nullable:true)
    }
}
通过这种方式,您可以从事件或用户的所有事件中获取用户。

编辑:

class User {
    static hasMany = [events:Event]
}


class Event {
    static hasMany = [users:User]
}

使用

将用户添加到活动中
event.addToUsers(user)

使用

从活动中删除用户
event.removeFromUsers(user)

从活动中获取所有用户

event.users

我不太确定你是如何处理未注册的用户的。你根本没有关于这个用户的信息(没有用户名等?) 我建议你在User类“布尔注册”中添加一个标志。 因此,您也可以为未注册的用户创建用户对象。

欢呼马努