Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
grails应用中的混合关系_Grails_Gorm_Relationship - Fatal编程技术网

grails应用中的混合关系

grails应用中的混合关系,grails,gorm,relationship,Grails,Gorm,Relationship,我有一个名为Event的域类。事件有许多注册,这些注册是在站点上有帐户的用户或没有帐户的用户。我希望注册用户能够跟踪他们的事件,所以事件用户关系应该是双向的,因为用户是由SpringSecurity创建的。但仍有一些注册未与用户帐户连接。这一点很重要,因为赛事是一种带有排名的现场比赛,赛事结束后由赛事负责人更新排名。如何实现这一点?这应该是可行的: class User { static hasMany = [events:Event] } class Event { Use

我有一个名为Event的域类。事件有许多注册,这些注册是在站点上有帐户的用户或没有帐户的用户。我希望注册用户能够跟踪他们的事件,所以事件用户关系应该是双向的,因为用户是由SpringSecurity创建的。但仍有一些注册未与用户帐户连接。这一点很重要,因为赛事是一种带有排名的现场比赛,赛事结束后由赛事负责人更新排名。如何实现这一点?

这应该是可行的:

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


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

编辑:

使用将用户添加到事件中

event.addToUsers(user)
event.removeFromUsers(user)
使用从事件中删除用户

event.addToUsers(user)
event.removeFromUsers(user)
从事件获取所有用户

event.users
我不太清楚你是如何处理未注册用户的。你根本没有关于这个用户的信息吗?没有用户名等等? 我建议您在用户类Boolean registered中添加一个标志。 因此,您也可以为未注册的用户创建用户对象


干杯马努

这是我已经知道的部分。顺便说一句:用户事件应该是多对多。但是,我如何跟踪那些在我的网站上注册的用户和那些没有注册但参加了活动的用户,例如,注册了活动发生地的用户/我的英语很糟糕/