gpt4 book ai didi

Grails 命名查询不适用于 "in"语句

转载 作者:行者123 更新时间:2023-12-02 06:41:44 26 4
gpt4 key购买 nike

我有一个 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

}

如果我按如下方式运行查询,则会检索所有值,而不仅仅是在 genericNameList 中至少拥有一本书的作者

String comaSeperatedGenereName = "genere1,genere2"
def genereNameList = comaSeperatedGenereName.split(",")
Author.hasGenre(genereNameList)

但是如果我像下面这样更改namedQuery,

      hasGenre {genreName -> 
book{
genres {
eq 'title' , genreName
}
}

如果我传递如下字符串

Author.hasGenre('genere1')

这按预期工作。我有什么遗漏的吗?

提前致谢

最佳答案

有一个 groovy in 运算符,我怀疑您得到的是 groovy in 运算符,而不是标准。

尝试将代码更改为

  static namedQueries = {
hasGenre {genreNameList ->
book{
genres {
'in' 'title', genreNameList
}
}
}
}

关于Grails 命名查询不适用于 "in"语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33163393/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com