Список с параметром выборки - PullRequest
1 голос
/ 15 сентября 2011

У меня есть класс с именем Address, который имеет логическое поле с именем clone.Я пытаюсь использовать метод Grails list(), чтобы показать экземпляр класса Address, где clone = false.Хотя я мог бы использовать параметр fetch для достижения этой цели, но он не работает, как ожидалось.Вместо того, чтобы возвращать только адреса, которые я хочу, он возвращает все экземпляры класса Address.Вот что у меня есть:

def list = {
    params.max = Math.min(params.max ? params.int('max') : 10, 100)
    params.fetch = [clone:false]
    [addressInstanceList: Address.list(params), addressInstanceTotal: Address.count()]
}

Даже когда я делаю это очень просто, выборка все равно не работает, как ожидалось.Например, если я укажу, что я просто хочу получить экземпляры класса Address с почтовым индексом "90210", я написал это, но он все равно дает мне все экземпляры класса Address.

Address.list(fetch:[zip:"90210"])

Что я делаю не так?

1 Ответ

6 голосов
/ 15 сентября 2011

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

, т. Е. (Из документация для списка ):

def results = Book.list(fetch:[authors:"eager"])

Чтобы сделать то, что вы делаете, я полагаю, вы можете использовать вызов findAllWhere, например:

Address.findAllWhere( clone:false, zip:'90210' )
...