Запрос критериев Grails / GORM с помощью строки hasmany

У меня есть объект домена (Cat), как это:

class Cat {
   String name

   static hasMany = [
      nicknames: String
   ]
}

(У кошки есть имя, а также много псевдонимов (которые являются строками))

И я пытаюсь опросить всех кошек с определенными никами.

Я пробовал это:

PagedResultList getCatsByNickname(String nickname, Map params) {
   PagedResultList results = Cat.createCriteria().list(params) {
      'ilike'('nicknames','%'+nickname+'%')
   }
   return results
}

Но это никогда не возвращает никаких результатов. (Если я изменю запрос на использование только простого атрибута имени, он будет работать для поиска всех кошек с таким именем, но я хочу выполнить запрос по псевдонимам.)

Я также попробовал это:

PagedResultList getCatsByNickname(String nickname, Map params) {
   PagedResultList results = Cat.createCriteria().list(params) {
      'nicknames' {
         'ilike'('nicknames','%'+nickname+'%')
       }
   }
   return results
}

Но я получаю ошибку: org.hibernate.MappingException: коллекция не была ассоциацией: example.Cat.nicknames

Итак, вопрос в том, как выполнить запрос к hasMany типа String?

Ответы на вопрос(3)

Ваш ответ на вопрос