Учитывая следующие примеры доменов:
class UserRole implements Serializable {
User user
Role role
}
class User {
Set<Role> getRoles() {
UserRole.findAllByUser(this).collect { it.role } as Set
}
}
class Role {
Set<User> getUsers() {
UserRole.findAllByRole(this).collect { it.user } as Set
}
Я не могу понять, как построить критерии, чтобы найти всех пользователей с заданной ролью. Я пробовал следующее:
def crit = User.createCriteria()
def results = crit.list {
roles {
eq('authority', 'ROLE_ADMIN')
}
}
Однако он говорит, что не может найти свойство «роли» в User. Причина, по которой мне нужны критерии для этого, заключается в том, что у пользователя будут дополнительные свойства, по которым выполняется поиск, поэтому динамические средства поиска не будут работать в этой ситуации.
}.collect { it.user }
на}.user
, так как результатом является список. 15.07.2011}*.user
, или}.user
сам будет работать? Я никогда не видел, чтобы использовался последний синтаксис. 15.07.2011projection
во втором примере работать? Никогда не пробовал. Я сам устрою быструю проверку, если вы не знаете что ли. 15.07.2011