У меня есть приложение Grails (2.2.4). Где в классе домена у меня выглядит такGrails назвал запросы, не работающие с оператором «in»
class Author implements Serializable {
....
static hasMany = [
book : Book
]
static namedQueries = {
hasGenre {genreNameList ->
book{
genres {
'title' in genreNameList
}
}
}
}
}
class Book implements Serializable{
Author author
Genres genres
static belongsTo = [author: Author , genre: Genres ]
static mapping = {
.....
author lazy: false
}
}
class Genres implements Serializable{
String title
}
Если я выполнить запрос, как показано ниже, все значения извлекаются, а не только авторы с по крайней мере одной книги с жанрами в genereNameList
String comaSeperatedGenereName = "genere1,genere2"
def genereNameList = comaSeperatedGenereName.split(",")
Author.hasGenre(genereNameList)
Но если изменить namedQuery вроде следующего,
hasGenre {genreName ->
book{
genres {
eq 'title' , genreName
}
}
И если я передаю строку как следующий
Author.hasGenre('genere1')
Это работает как ожидалось. Есть что-то, что мне не хватает?
Заранее спасибо
запятая отсутствует – injecteer
Спасибо, ребята, ответ, который сработал, находится в '' title ', genreNameList – Visahan
спасибо, что injeteer обновит ответ – Neoryder