我有以下域类:
class Account {
String name
String uniqueName
static hasMany = [roles:Role]
}
class Role {
String name
static belongsTo = [account:Account]
static hasMany = [users: User]
}
class User {
String name
}
我从params.uniqueName收到了帐户的uniqueName。我想找到所有具有belongsTo帐户角色的用户列表。
我想使用criteria()因为我想在分页中执行它。
我尝试下面的代码,它的工作但它无法进行分页。
def account = Account.findByUniqueName(params.uniqueName)
def roles = account.roles
[users : roles.users.flatten().unique()]
我该怎么做?
答案 0 :(得分:1)
试试这个: 添加到用户:
static belongsTo = [role:Role]
并使用此标准:
User.createCriteria().listDistinct {
role{
account{
eq("uniqueName", params.uniqueName)
}
}
}
答案 1 :(得分:0)
您可以使用此类条件。
List<Account> results =Account.createCriteria().list
{
eq('uniqueName', params.uniqueName)
maxResults(params.max as int)
firstResult(params.offset as int)
order(params.order, "asc")
}
答案 2 :(得分:0)
试试这个:
Account account = Account.findByUniqueName(params.uniqueName)
Collection users = []
account.roles.each{ role ->
users += role.users
}
log.info("Users for ${params.uniqueName} account : ${users}"