私は、ドメインクラスを持っているが、いくつかのコンテンツレコードがデータベースに存在するgrailsの最後の2つのレコードを効率的に取得する方法はありますか?
class Content{
String content
Date dateCreated
Date lastUpdated
}
言います。私は最新の2つのレコードを取得したい。 Grailsで2つの最新のレコードを照会する効率的な方法は何ですか?ありがとう!
私は、ドメインクラスを持っているが、いくつかのコンテンツレコードがデータベースに存在するgrailsの最後の2つのレコードを効率的に取得する方法はありますか?
class Content{
String content
Date dateCreated
Date lastUpdated
}
言います。私は最新の2つのレコードを取得したい。 Grailsで2つの最新のレコードを照会する効率的な方法は何ですか?ありがとう!
は
Content.list(max: 2, sort: "dateCreated", order: "desc")
可能性はありませんか?
あなたにHQL
クエリを書くことができます -
String queryString = "select content from Content order by lastUpdated desc"
List contentList = Content.executeQuery(queryString,[max: 2, offset: 0])
"武器" あなたが作る...
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の機能を使うことができます。パフォーマンス上の兆候はありません。
私はこれらのアプローチについては何も主張しません。なぜ 'where'クエリですか? –
Hibernateを使用していますか? –