ho un oggetto di dominio (Cat) come questo:Grails/GORM interrogazione criteri con String hasMany
class Cat {
String name
static hasMany = [
nicknames: String
]
}
(Un gatto ha un nome, e ha anche molti soprannomi (che sono stringhe))
E sto cercando di interrogare tutti i gatti con determinati soprannomi.
Ho provato questo:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'ilike'('nicknames','%'+nickname+'%')
}
return results
}
Ma non è mai restituisce alcun risultato. (. Se cambio la query di utilizzare solo l'attributo name semplice, funziona trovando tutti i gatti con quel nome, ma voglio interrogare contro i soprannomi)
Ho provato anche questo:
PagedResultList getCatsByNickname(String nickname, Map params) {
PagedResultList results = Cat.createCriteria().list(params) {
'nicknames' {
'ilike'('nicknames','%'+nickname+'%')
}
}
return results
}
Ma Ho ricevuto l'errore: org.hibernate.MappingException: collection was not an association: example.Cat.nicknames
Quindi la domanda è: come faccio a eseguire una query su hasMany di tipo String?
Alcune persone la stessa domanda: 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
Questo errore sembra essere la causa dell'errore che si sta verificando: [GRAILS-5887] (https://jira.grails.org/browse/GRAILS -5887) – cweston