【发布时间】:2011-09-23 14:57:19
【问题描述】:
我有一个像这样的域对象(猫):
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: collection was not an association: example.Cat.nicknames
所以问题是,我如何查询 hasMany 类型的 String?
【问题讨论】:
-
这个错误似乎是你得到错误的原因:GRAILS-5887
标签: grails groovy grails-orm createcriteria