Запрос критериев 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?