我有一個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)
的用於至少一個書genere作者
但如果我改變namedQuery像下面,
hasGenre {genreName ->
book{
genres {
eq 'title' , genreName
}
}
,如果我傳遞一個字符串像下面
Author.hasGenre('genere1')
這個按預期工作。有什麼我失蹤?
在此先感謝
逗號缺失 – injecteer
感謝球員,工作的答案是'在''標題',genreNameList – Visahan
謝謝injeteer將更新答案 – Neoryder