2011-04-01 18 views
1

Grailsのオブジェクトリストの最初の要素をコマンド.list()から返すことはできますが、Javaメソッドは使用できません。つまり、SQLのクエリSELECT TOP FROMと同様に、.list()を呼び出すときに最上位の要素を選択するオプションがあります。Grailsリストの最初の要素を取得する

私はこれを使って好きではない:

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

それはそんなにメモリリソースを起こしBecayse。 ありがとうございました!それを行うには

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

答えて

9

簡単な方法は、list

Domain.list([max:1]) 

それとも、私は信じている基準のクエリを使用することができて、最大のパラメータを使用することです最初の結果。テーブルが空の場合はnull

User.find("from User") 

複数のが必要な場合、あなたはまた、あなたが本当にテーブルからわずか任意のオブジェクトをしたい場合は、listはおそらくあなたの最善の策である最大パラメータ

User.findAll("from User", [max: 10]) 

findAllを使用することができますが、ほとんどの場合、これらの種類のクエリでは、それ以上の制約があり、HQLに行くと非常に簡単になります。

+0

多分なし[0]、{maxResults(1)...}に.get試みますか? – koddo

+0

それはあなたに単一のアイテムではなく、1つのアイテムを含むリストを手に入れませんか? –

+0

リストを返すのではなく、リストを返す – koddo

1

別の方法は返す、findである:

関連する問題