我有一个像这样的域对象(猫):
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?