Как переопределить DomainClass.list () в GORM (Grails) - PullRequest
3 голосов
/ 24 февраля 2012

Люди, у меня проблема с grails GORM , мое приложение полностью зависит от метода DomainClass.list(), оно есть во всех моих GSP создания / редактирования, но теперь мне нужен определенный поведение для перечисления объектов. Чтобы быть более конкретным, мне нужно отфильтровать эти списки (все) по одному атрибуту.

Проблема в том, что я надеюсь не изменять внешний вид этих методов, так есть ли способ настроить поведение метода list() по умолчанию? Мне нужно, чтобы он функционировал так же, как он, но с добавлением конечного фильтра.

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

Возможно, вы можете использовать плагин фильтра гибернации (см. здесь ). Это позволит вам отфильтровать все методы поиска (включая list()) на основе свойства:

static hibernateFilters = {
    enabledFilter(condition: 'deleted=0', default: true)
}
0 голосов
/ 24 февраля 2012

Рассматривали ли вы использование запросов имен ?Вы всегда можете сделать что-то вроде этого:

class DomainClass {
    // ... class members

    static namedQueries = {
        myList { params->
            // put your complicated logic here
        }
    }
}

Тогда вы можете просто заменить свои звонки на DomainClass.list() на DomainClass.myList.list().

...