ページネーションを使用する機能が目標ですが、これをどのように処理するかはわかりません。リレーションシップは一方向の hasMany です (以下を参照)。現在のところ、ページネーションなしで正常に動作します(スクリーンショットを参照)。ただし、ページネーションを使用するには、createCriteria を使用するようにコントローラーを変更する必要があります。これは、関係にとって非常に奇妙であるため、私が困難になるところです。
ドメイン
Class Tag {
String Tag
User user
static hasMany = [events: Event]
}
コントローラ
def searchTags() {
println("TAG CONTROLLER - Params sent on click of tag are: "+params.selected)
def results = Tag.findByTagAndUser(params.selected, lookupPerson())
//resultTotal is for show for the time being
[query: params.selected, results: results, resultTotal: 0]
}
GSP
<g:each in="${results.events}" status="i" var="t">
.... ommited as unnessary
</g:each>
//Not working yet due to confusing createCriteria issue
<div class="pagination">
<g:paginate total="${resultTotal}" />
</div>
これは私が今のところ考えていることですが、少し混乱しています:
def tagCriteria = Tag.createCriteria()
def result = tagCriteria.list (max: 50, offset: 10) {
eq("tag", params.selected)
and {
eq("user", lookupPerson())
}
//Not sure what to do at this point compared with the findByTagAndUser(params.selected, lookupPerson()).events events being the hasMany relationship seen in domain
events {
}
}