Запрос критериев Grails / GORM с hasmany String

У меня есть объект домена (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?

10
задан McDave 23 September 2011 в 14:57
поделиться