Ошибка при запросе отношения многие ко многим в Grails - PullRequest
2 голосов
/ 16 ноября 2009
class Address {
    static hasMany = [addressGroups: AddressGroup]
    ...
}

class AddressGroup {
    static belongsTo = Address
    static hasMany = [addresses: Address]

    String notation;
    ...
}

Я пытаюсь получить все адреса для данной группы адресов.

Мой код:

def params = [max: 10]
def addressGroup = AddressGroup.findByNotation("asdf")
def addresses = Address.findAllByAddressGroups(addressGroup, params)

Сообщение об ошибке: Не указано значение для параметра 2

Зарегистрированный оператор SQL:

select ... from ADDRESSES this_ where this_.id=10 order by this_.id asc limit ** NOT SPECIFIED **

... что совершенно неправильно.

Есть идеи?

Я мог бы получить адреса с помощью addressGroup.addresses (и это работает!), Но я хочу отобразить его в таблице с нумерацией страниц, поэтому мне нужно макс / смещение параметров.

Ответы [ 2 ]

1 голос
/ 23 ноября 2009

Хорошо ... Я попытался использовать расширение GORM, но, посмотрев на него немного ближе, я обнаружил, что оно не имеет того, что мне нужно.

Я использую Criteria API:

def c = Address.createCriteria()
def results = c.list {
   if(params.addressGroup) {
      addressGroups {
         eq('id', params.addressGroup)
      }
   }

   maxResults(params.max)
   order(params.sort, params.order)    
}
1 голос
/ 16 ноября 2009

Я не думаю, что динамические искатели принимают параметры пагинации, которые вам нужны.

Проверьте Плагин GORM Labs , который представляет некоторые расширения GORM. В разделе «Paginated HasMany Properties» показано, как сделать то, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...