2016-09-16 83 views
1

我有一個域類說在grails中獲取最後兩條記錄的有效方法?

class Content{ 

    String content 
    Date dateCreated 
    Date lastUpdated 

} 

有數據庫中的一些內容記錄。我想檢索最新的兩條記錄。在Grails中查詢兩條最新記錄的有效方法是什麼?謝謝!

+1

你在使用Hibernate嗎? –

回答

4

是不是

Content.list(max: 2, sort: "dateCreated", order: "desc") 

的可能性?

2

你可以寫一個HQL查詢作爲 -

String queryString = "select content from Content order by lastUpdated desc" 

List contentList = Content.executeQuery(queryString,[max: 2, offset: 0]) 
3

不管的 「武器」 你做出的選擇...

HQL查詢

def query = "SELECT content from Content order by lastUpdated desc" 
def data = Content.executeQuery(query,[max: 2, offset: 0]) 

SQL查詢

SELECT * FROM table_name ORDER BY lastUpdated DESC LIMIT 2 

的Grails個createCriteria:

def c = Content.createCriteria() 
def results = c.list { 
    order("lastUpdated", "desc") 
    maxResults(2) 
} 

...最佳選擇的主要原則保持不變 - 順序遞減,並得到2個結果
如果要檢索的數據如此微不足道,則不需要實際的SQL或HQL查詢。您可以使用Grails功能,它不會在性能上留下任何痕跡。

+0

我不會主張任何這些方法。爲什麼不是'where'查詢? –

相關問題