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