如何從命令.list()返回對象返回的Grails列表中的第一個元素,但不使用Java方法。我的意思是,我們有沒有選擇在調用.list()時選擇頂層元素,類似於SQL查詢SELECT TOP FROM。獲取Grails列表中的第一個元素
我不喜歡使用這樣的:
List domains = Domain.list()
return domains.get(0)
Becayse它會導致內存資源這麼多。 非常感謝!
如何從命令.list()返回對象返回的Grails列表中的第一個元素,但不使用Java方法。我的意思是,我們有沒有選擇在調用.list()時選擇頂層元素,類似於SQL查詢SELECT TOP FROM。獲取Grails列表中的第一個元素
我不喜歡使用這樣的:
List domains = Domain.list()
return domains.get(0)
Becayse它會導致內存資源這麼多。 非常感謝!
一個快速的方法是使用最大參數與list
Domain.list([max:1])
或者你可以使用一個標準的查詢,我相信:
def domainCriteria = Domain.createCriteria()
def firstDomain = domainCriteria.list{
maxResults(1)
order('id', 'asc')
}[0]
另一種方式來做到這一點是與find
,它返回第一個結果,如果表爲空,則返回null。
User.find("from User")
如果你想不止一個,你也可以使用findAll
具有最大參數
User.findAll("from User", [max: 10])
如果你真的想剛剛從表中的任何對象,然後list
可能是你最好的選擇,但在大多數情況下,通過這些查詢,您希望將其限制得多一點,並且使用HQL可以非常簡單。
截至Grails 2.1.1,first()
和last()
方法已被添加。
def firstResult = Domain.first()
和
def lastResult = Domain.last()
也許嘗試。獲得{的maxResults(1)...},而不[0]? – koddo 2011-04-01 09:21:37
這不會讓你的列表包含一個項目,而不是單個項目本身? – 2011-04-01 10:57:22
它返回的項目,而不是一個列表 – koddo 2011-04-01 11:51:31