que tengo un objeto de dominio (CAT) como este:Grails/GORM criterios de consulta con la cadena hasMany
class Cat {
String name
static hasMany = [
nicknames: String
]
}
(Un gato tiene un nombre, y también tiene muchos apodos (que son cadenas))
Y estoy tratando de consultar a todos los gatos con ciertos apodos.
He intentado esto:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'ilike'('nicknames','%'+nickname+'%')
}
return results
}
Pero nunca devuelve ningún resultado. (. Si cambio de la consulta sólo tiene que utilizar el atributo de nombre sencillo, funciona la búsqueda de todos los gatos con ese nombre, pero quiero consulta contra los apodos)
También probé esto:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'nicknames' {
'ilike'('nicknames','%'+nickname+'%')
}
}
return results
}
Pero Me sale el error: org.hibernate.MappingException: collection no era una asociación: example.Cat.nicknames
Entonces la pregunta es, ¿cómo consulto en contra de un hasMany de tipo String?
Algunas personas hacen la misma pregunta: ¿http://grails.1312388.n4.nabble.com/Criteria -query-on-properties-of-type-List-lt-String-gt-td1325707.html http://grails.1312388.n4.nabble.com/GORM-how-to-set-criteria-for-object -with-list-or-set-of-strings-td1388277.html – McDave
Este error parece ser la causa del error que está recibiendo: [GRAILS-5887] (https://jira.grails.org/browse/GRAILS -5887) – cweston