пятница, 7 марта 2008 г.

grails: mein kampf 0 / Web Flow

В Grails есть чудесная штука - называется Web Flow. Хотя, я неверно выразился, Web Flow есть в Spring, а в Grails его "воткнули", как и многое другое. У Web Flow Grails есть чудесная особенность - внутри кода описывающего Web FLow в контроллере нельзя применять Hibernate Criteria, потому как они работают в этом случае очень странно.

Например вот такой код:


def mainFlow = {
...
search {
action {
...
def listCriteria = Client.createCriteria()
def clientList = listCriteria {
like("fname", fname)
like("pname", pname)
like("sname", sname)
firstResult(params.offset)
maxResults(params.max)
}
...
}
}
}


даст на выходе запрос в котором отсутствуют всякие упоминания о firstResult и maxResults.

Решение данной проблемы - перенос работы с Criteria в сервис и последующий инжект оного в контроллер.

Такие дела.

Комментариев нет: