Вызвать namedQuery внутри критерия в контроллере - PullRequest
4 голосов
/ 18 апреля 2011

Можно ли вызвать namedQuery на граалях внутри контроллера?Я знаю, что могу вызвать namedQuery внутри другого namedQuery, но я не хочу этого делать.Есть идеи?Спасибо

Пользователь .groovy

static namedQueries = {
      filterUsers{
            eq("age", 21)
      }
}

MyController .groovy

def r = User.createCriteria().list {
     eq("id", 1)
     filterUsers() //not possible
}

или ..

MyController .groovy

    //not possible too
    //Cannot invoke method createCriteria() on null object

    def r = User.filterUsers().createCriteria().list {
         eq("id", 1)           
    }

1 Ответ

4 голосов
/ 18 апреля 2011

Вот пример:

Домен:

class User {

    int age
    String userName

    static namedQueries = {
        filterUsers {
            eq("age", 21)
        }
    }

    static constraints = {
    }
}

Контроллер:

class TestController {

    def index = {

        def users = User.filterUsers {
            and {
                like 'userName', 'Derek%'
            }
        }

        render users as JSON
    }
}

Кроме того, вы можете найти больше об этом здесь: Справочная документация

...