字符串列表的 Grails 域命名查询
Grails domain Named query for a list of string
我有一个简单的 Grails 应用程序。我有如下域名
class Author implements Serializable {
....
static hasMany = [
book : Book
]
}
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
}
现在我有一个要求,我有一个流派标题列表,我需要检索所有至少拥有其中一种流派的一本书的作者。我需要在 Author class 中编写命名查询。我尝试了以下查询
hasGenre {cl ->
'book.genre.title' in cl
}
我传递了一个字符串列表如下
Author.hasGenre(genereTitleStringArray)
但这似乎不起作用。我还有其他一些简单的 named-queries,效果很好。因此,当我检索包括 "hasGenere" 时,这似乎并不影响检索。我究竟做错了什么?我对这个领域很陌生
提前致谢
正确的语法是
static namedQueries = {
hasGenre {genreName ->
book{
genres {
eq 'title' genreName
}
}
}
}
你用过list()方法吗?如果不是,则必须使用它从 namedQuery 获取实体,因为 namedQuery return NamedCriteriaProxy.Class:
author = Author.hasGenre(genereTitleStringArray).list()
对我来说这样的代码运行良好,在我的作者中我有:
static namedQueries = {
hasGenre { cl->
'book.genres.title' in cl
}
}
预订相同。关于流派,您还必须一对一地添加依赖项(如果没有):
static belongsTo = [book: Book]
或一对多:
static hasMany= [book: Book]
对我来说,当前代码运行良好,祝你好运。
P.S。 我正在使用 grails 2.3.11
我有一个简单的 Grails 应用程序。我有如下域名
class Author implements Serializable {
....
static hasMany = [
book : Book
]
}
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
}
现在我有一个要求,我有一个流派标题列表,我需要检索所有至少拥有其中一种流派的一本书的作者。我需要在 Author class 中编写命名查询。我尝试了以下查询
hasGenre {cl ->
'book.genre.title' in cl
}
我传递了一个字符串列表如下
Author.hasGenre(genereTitleStringArray)
但这似乎不起作用。我还有其他一些简单的 named-queries,效果很好。因此,当我检索包括 "hasGenere" 时,这似乎并不影响检索。我究竟做错了什么?我对这个领域很陌生
提前致谢
正确的语法是
static namedQueries = {
hasGenre {genreName ->
book{
genres {
eq 'title' genreName
}
}
}
}
你用过list()方法吗?如果不是,则必须使用它从 namedQuery 获取实体,因为 namedQuery return NamedCriteriaProxy.Class:
author = Author.hasGenre(genereTitleStringArray).list()
对我来说这样的代码运行良好,在我的作者中我有:
static namedQueries = {
hasGenre { cl->
'book.genres.title' in cl
}
}
预订相同。关于流派,您还必须一对一地添加依赖项(如果没有):
static belongsTo = [book: Book]
或一对多:
static hasMany= [book: Book]
对我来说,当前代码运行良好,祝你好运。
P.S。 我正在使用 grails 2.3.11