Граальс результат набора нумерации - PullRequest
0 голосов
/ 19 февраля 2012

Предположим, у меня есть класс User со многими Customers (помечены hasMany свойством).В классе Customer я отмечаю владельца belongsTo.

Теперь, когда я хочу получить клиентов пользователей, я просто пишу User.read(params.id).customers

Я хочу разбить на страницы в моем тестовом проекте,поэтому чтение всего списка клиентов не имеет особого смысла ... Я бы использовал что-то вроде Customer.findAllByOwner, но этот метод такого метода отсутствует ..

Как мне ограничить набор результатов такого запросатогда (смещение и предел)?


package myapp

class User {
    ...
    static hasMany = [customers: Customer]
    ...
}

package myapp

class Customer {
    ...
    static belongsTo = User
    ...
}

Ответы [ 2 ]

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

Поправьте меня, если я ошибаюсь, но идея в его наиболее упрощенной форме заключается в том, что вы хотите получить список клиентов на основе объекта User.

В этом случае измените свой класс домена Customer на что-то вроде ...

class Customer {
   ...
   static belongsTo = [user: User]
   ...
}

Затем в вашем контроллере вы можете сделать что-то вроде:

def customerInstanceList = Customer.findAllByUser(User.get(params.id), [max: params.max, offset: params.offset])

Надеюсь, это поможет.

2 голосов
/ 20 февраля 2012

Имя свойства в Customer, к которому вы пытаетесь обратиться, - «пользователь» вместо «владелец».Если вы хотите, чтобы имя свойства было владельцем, оно должно быть:

static belongsTo = [owner : User]

Вы можете разбить на страницы результирующий набор динамического поиска, предоставив карту, содержащую параметры разбиения на страницы в качестве окончательного параметра.

def customers = Customer.findAllByOwner(user, [max:params.max, 
                                     offset:params.offset)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...