Искатель вернет List
, а вызов .user
также вернет List
, но вы можете обмануть и привести его к Set
, и он удалит дубликаты. Поскольку нет необходимости в заказе (вы возвращаете def
, поэтому не похоже, что вы заботитесь о типе коллекции), вам не нужно преобразовывать его обратно:
def getUsersByRole(String desiredRole1, String desiredRole2, String desiredRole3) {
Role role1 = Role.findByAuthority(desiredRole1)
Role role2 = Role.findByAuthority(desiredRole2)
Role role3 = Role.findByAuthority(desiredRole3)
return UserRole.findAllByRoleInList([role1, role2, role3]).user as Set
}
Это предполагает, что у вас есть четко определенные equals
и hashCode
в вашем классе User
, поэтому проверка уникальности имеет смысл.