首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取Grails列表中的第一个元素

获取Grails列表中的第一个元素
EN

Stack Overflow用户
提问于 2011-04-01 11:45:03
回答 3查看 9.4K关注 0票数 1

如何从命令.list()返回Grails对象列表中的第一个元素,而不是使用Java方法。我的意思是,当调用.list()时,我们有没有选择top元素的选项,类似于SQL查询select TOP FROM。

我不喜欢用这个:

代码语言:javascript
运行
复制
List domains = Domain.list()
return domains.get(0)

因为它占用了大量的内存资源。非常感谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-04-01 15:57:11

一种快捷的方法是将max参数与list一起使用

代码语言:javascript
运行
复制
Domain.list([max:1])

或者,您可以使用我相信的条件查询:

代码语言:javascript
运行
复制
def domainCriteria = Domain.createCriteria()
def firstDomain = domainCriteria.list{
    maxResults( 1 )
    order( 'id', 'asc' )
}[0]
票数 11
EN

Stack Overflow用户

发布于 2014-07-24 23:56:49

Grails 2.1.1开始,添加了first()last()方法。

代码语言:javascript
运行
复制
def firstResult = Domain.first()

代码语言:javascript
运行
复制
def lastResult = Domain.last()
票数 2
EN

Stack Overflow用户

发布于 2011-04-02 11:09:00

另一种方法是使用find,它返回第一个结果,如果表为空,则返回null。

代码语言:javascript
运行
复制
User.find("from User")

如果需要多个参数,也可以使用带有最大参数的findAll

代码语言:javascript
运行
复制
User.findAll("from User", [max: 10])

如果您真的只需要表中的任何对象,那么list可能是您最好的选择,但大多数情况下,对于这些类型的查询,您希望对其进行更多的约束,使用HQL可以使这一点变得非常容易。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5508915

复制
相关文章

相似问题

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