ここで hasMany の関係にあるドメインで、サブクエリを使って、紐付く子のレコードの中で最新のものを検索する仕方を説明した。
今度はさらに、この子のレコードを検索条件に加える方法。
ここでの続き
単純に以下を追加すればできる
1 2 3 |
eq("bk.name", "xxxxxxx") |
いかがでしたでしょうか
Grails に関する情報
paginate タグとか使って、ページネーションを表現すると、表示する内容と総件数の両方を取る必要がある。
totalCount を使うと一度の検索で、表示したい範囲の情報と総件数がとれる。
max は取得したい件数(表示したい件数)
offset は、ページネーションでずれたページ数。意識しなくても、paginate タグなら、 params.offset に入る。
1 2 3 4 5 6 7 8 |
def criteria = DomainClass.createCriteria() def searchResults = criteria.list(max : max, offset : offset) { eq("field.id", searchId) } def total = searchResults.totalCount |
これで、 searchResults には取得したい内容のデータが入っている。
総件数は
searchResults.totalCount
で取れる。