1

我正在尝试使用链式命名查询获取 pagedResultList,但我似乎失败了。关于如何实现这一点的任何提示或技巧?

请参阅以下 Grails 文档中的修改示例,该示例应说明我的需求

def books = Publication.recentPublications.grailsInTitle.list(params) {
    or {
        like 'author', 'Tony%'
        like 'author', 'Phil%'
    }
}

这总是返回一个 ArrayList..

何时或删除附加条件并像下面一样使用它可以工作

def books = Publication.recentPublications.grailsInTitle.list(params)

我想添加一些标准闭包,关于如何实现这一点的任何提示或提示?

4

1 回答 1

2

我在命名查询方面面临同样的问题。这是我应用于您的课程的解决方案。评论它是否适合您。

class Publication {
    //fields, constraints, etc.
    namedQueries = {
        authoredLike { String authorName ->
        if (authorName) {
            like 'author', authorName
        }
        // untested, but you get the point, please experiment
        authoredLikeMany { List<String> authors ->
            authors.each { String authorName -> like 'author', authorName }
        }
    }
}

def tonyBooks = Publication.recentPublications.grailsInTitle.authoredLike('Tony%').list(params)
def tonyAndPhilBooks = Publication.recentPublications.grailsInTitle.authoredLikeMany(['Tony%', 'Phil%']).list(params)
于 2012-11-07T11:09:36.463 回答