Возможность использования Pagination - цель, однако я не уверен, как работать с этим. Отношение является однонаправленным hasMany (см. Ниже). Как текущий он отлично работает без pagination (см. Screenshot), но для работы с разбиением на страницы мне нужно изменить контроллер, чтобы использовать createCriteria. Именно здесь я сталкиваюсь с трудностями, поскольку это довольно странно для отношений.Grails unirectional 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 {
}
}
спасибо Джеймс, но это не работает. Возврат 'results' дает что-то довольно странное в соответствии с IntelliJ. Объект списка, содержащий набор, то есть' List> ' Там будет только ** один тег, который соответствует **, как я это разработал, я не знаю, поможет ли это в каких-либо предложениях? Я прихожу с этим, не похоже, что это возможно, но наверняка у кого-то была эта проблема:/ –
RST
p.s. totalCount возвращает одно, что технически правильно, поскольку только один объект тега, но, очевидно, существует много событий, связанных с этим тегом. Надеюсь, вы сможете это решить :) – RST
Для того, чтобы разбивать события на страницы, вам нужно запросить события. Я бы предложил использовать HQL –