Grails アプリケーション (2.2.4) があります。私が持っているドメインクラスの場所は次のようになります
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 にジャンルを持つ本が少なくとも 1 冊ある著者だけではありません。
String comaSeperatedGenereName = "genere1,genere2"
def genereNameList = comaSeperatedGenereName.split(",")
Author.hasGenre(genereNameList)
しかし、次のようにnamedQueryを変更すると、
hasGenre {genreName ->
book{
genres {
eq 'title' , genreName
}
}
そして、次のような文字列を渡すと
Author.hasGenre('genere1')
これは期待どおりに機能します。足りないものはありますか?
前もって感謝します