создать критерии и синтаксис списка в Grails - PullRequest
0 голосов
/ 05 февраля 2012

Я проверяю метод createCriteria здесь

Этот оператор объявляет объект HibernateCriteriaBuilder

def c = Account.createCriteria()

, а затем вызывает

def results = c.list {
 like("holderFirstName", "Fred%")
 and {
    between("balance", 500, 1000)
    eq("branch", "London")
 }
}

Однако из API HibernateCriteriaBuilder не имеет метода list ().Я что-то пропускаю?

Кроме того, кто-то может объяснить мне более сложный синтаксис следующего:

def results = c.list (max: 10, offset: 10) {
   like("holderFirstName", "Fred%")
}

Это метод списка, который принимает два аргументаи закрытие ??

Ответы [ 2 ]

1 голос
/ 05 февраля 2012

Это list() - это динамический метод, сгенерированный / обработанный HibernateCriteriaBuilder (см. исходный код )

И вы правы, этот синтаксис предназначен для передачи замыкания, но текущий примертакже использует параметры в качестве карты (max: 10, offset: 10 - это карта), поэтому для такого метода, как list(Map params, Closure c)

0 голосов
/ 05 февраля 2012

Вам не нужно беспокоиться о list (), о его динамическом методе, вы просто предполагаете, что он существует.

Ниже приведен запрос с информацией подкачки, который говорит, что возвращает максимум 10 записей, начиная ссмещение 10, где holderFirstName похоже на Fred%

def results = c.list (max: 10, offset: 10) {
  like("holderFirstName", "Fred%")
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...