【发布时间】:2011-07-14 19:41:49
【问题描述】:
给出以下示例域:
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')
}
}
但是,它说它在用户中找不到属性“角色”。我需要一个标准的原因是因为在用户中将有其他属性被搜索,因此动态查找器不适用于这种情况。
【问题讨论】:
-
您打算如何处理结果,您希望它有多大?
-
我问是因为我想知道是否可以选择查询
UserRole和.collect{}ing 用户。 -
结果会非常小。但是,还有其他关联也需要直接从用户中查询。其他多对多关联,假设它甚至是可能的。
标签: grails many-to-many grails-orm criteria-api