Смешанные отношения в приложении Grails - PullRequest
0 голосов
/ 05 марта 2011

У меня есть класс домена, который называется Event.Event имеет много регистраций, которые являются пользователями с аккаунтом на сайте или людьми без него.Я хочу, чтобы зарегистрированный пользователь мог отслеживать свои события, поэтому отношение Event-User должно быть двунаправленным (пользователь создан Spring Security).Еще есть регистрации, которые не связаны с учетными записями пользователей.Это важно, так как событие является своего рода соревнованием с рейтингом, которое обновляется владельцем события по окончании мероприятия.Как этого добиться?

1 Ответ

0 голосов
/ 07 марта 2011

это должно работать:

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


class Event {
    User user
    static constraints = {
       user(nullable:true)
    }
}

таким образом вы можете получить пользователя от события или всех событий для пользователя.

EDIT:

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


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

добавить пользователей на событие с

event.addToUsers(user)

удалить пользователей из события с помощью

event.removeFromUsers(user)

получить всех пользователей из события

event.users

Я не совсем уверен, как вы справляетесь с незарегистрированными пользователями. У вас нет никакой информации об этих пользователях (нет имени пользователя и т. Д.?) Я бы посоветовал вам добавить флаг в класс User "логический зарегистрированный". Таким образом, вы можете создать объект User для незарегистрированных пользователей.

приветствия manu

...