Найти объект в сценарии «многие ко многим» - Grails - PullRequest
0 голосов
/ 01 мая 2010

У меня возникла такая ситуация: - пользователь класса с ролями hasMany и принадлежат ролям - роль класса с пользователем hasMans

как я могу получить роли, принадлежащие пользователю, задан пользователь объекта, как я могу получить объектыв szanario «многие ко многим»?

findByX не работает, он влияет только на одну таблицу, но мне нужен «поиск» или что-то еще, чтобы найти объект в целом / по многим таблицам.

кто-нибудь может мне помочь?и прошу прощения, что я не propper английский ^^

1 Ответ

1 голос
/ 02 мая 2010

Если у вас есть класс User, который выглядит следующим образом:

class User {
   String username
   static hasMany = [roles: Role]
   static belongsTo = Role
}

и класс Role, который выглядит следующим образом:

class Role {
   String name
   static hasMany = [users: User]
}

тогда ваш класс Role имеет коллекцию своих пользователей - это определяет hasMany. То же самое касается пользователя и его ролей.

Так что, если у вас есть пользователь, роли пользователя просто "user.roles":

def user = User.findByUsername('foo')
user.roles.each { role ->
   println "User $user.username has role $role.name"
}

и вы можете сделать то же самое для роли:

def role = Role.findByName('ROLE_ADMIN')
role.users.each { user ->
   println "User $user.username has role $role.name"
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...