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

时间:2011-04-01 03:45:03

标签: list grails select

如何从命令.list()返回Grails列表中的第一个元素,但不能使用Java方法。我的意思是,在调用.list()时,我们可以选择顶部元素,类似于SQL查询SELECT TOP FROM。

我不喜欢用这个:

List domains = Domain.list()
return domains.get(0)

这会导致内存资源如此之多。 非常感谢你!

3 个答案:

答案 0 :(得分:10)

快速方法是将max参数与list

一起使用
Domain.list([max:1])

或者您可以使用我认为的Criteria查询:

def domainCriteria = Domain.createCriteria()
def firstDomain = domainCriteria.list{
    maxResults( 1 )
    order( 'id', 'asc' )
}[0]

答案 1 :(得分:2)

截至Grails 2.1.1,已添加first()last()方法。

def firstResult = Domain.first()

def lastResult = Domain.last()

答案 2 :(得分:1)

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

User.find("from User")

如果您想要多个,您还可以将findAll与最大参数

一起使用
User.findAll("from User", [max: 10])

如果你真的只想要表格中的任何对象,那么list可能是你最好的选择,但大多数情况下,通过这些类型的查询,你想要限制它多一点,然后去到HQL可以很容易。