首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取最新10个注册用户-

获取最新10个注册用户-
EN

Stack Overflow用户
提问于 2016-04-03 09:41:29
回答 3查看 104关注 0票数 0

我需要得到最后10个注册用户(正常用户)在我的统计申请。应用程序有两个角色:普通用户和管理员用户。

在我的用户类( security)中,我有dateCreated字段,我可以使用以下查询在控制器中获得最后10个注册用户:

代码语言:javascript
运行
复制
User.listOrderByDateCreated(max: 10, order: 'desc')

但我只想在普通用户之间获取,不包括管理员。通过这个查询,我可以获得所有普通用户:

代码语言:javascript
运行
复制
UserRole.findAllByRole(role).user

我要运行什么查询?谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-04-03 21:49:56

令人惊讶的是,这是一个棘手的问题,因为用户没有对角色的直接处理,所以GORM帮助者没有那么多帮助。使用直接的Groovy列表操作,我们可以得到您想要的东西。

代码语言:javascript
运行
复制
def users = User.list().findAll { it.authorities.contains role }
.sort { it.dateCreated }
.reverse()
.take(10)

//or…

def users = UserRole.findAllByRole(role).user
.sort { it.dateCreated }
.reverse()
.take(10)

然而,如果您有大量的用户,这将是一个低效率的方法,以获得其中的10个。一个更好的选择可能是使用Hibernate标准:

代码语言:javascript
运行
复制
def users =  UserRole.createCriteria().list(max: 2) { 
  eq "role", role
  user { 
    order 'dateCreated', 'desc'
  }
  projections { property 'user' } 
}

如果需要,也可以通过executeQuery()使用HQL进行查询。

代码语言:javascript
运行
复制
def users = User.executeQuery("from User where id in (select user.id from UserRole where role.id = :roleId) order by dateCreated desc", [roleId: role.id], [max: 10])
票数 1
EN

Stack Overflow用户

发布于 2016-04-04 04:24:42

尝尝这个

代码语言:javascript
运行
复制
> User.executeQuery( "from User user where user.id in (select  userRole.user.id from UserRole userRole where userRole.role.id =:roleId) order by dateCreated desc", [roleId: role.id], [max: 10])

另一种方式是

代码语言:javascript
运行
复制
UserRole.executeQuery( "select ur.user from UserRole ur where ur.role.id =:roleId) order by ur.user.dateCreated desc", [roleId: role.id], [max: 10])

让我知道它是否对你有用..。:)

票数 2
EN

Stack Overflow用户

发布于 2016-04-03 12:31:15

试试这个:

代码语言:javascript
运行
复制
User.findAllByRole(role,
                 [max: 10, sort: "dateCreated", order: "desc"])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36383819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档