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