从在我的用户域模型中按 desc 排序的 GORM 数据库对象列表中,我想将它们按 asc 排序(即,在视图中以相反的顺序)。例如,从数据库中获取用户的最新书籍,但将它们以相反的顺序插入到 Dom 中,最新书籍最后出现。
如何在我的 GSP 中执行反向操作?
控制器:
def books = user.books
普惠制:
<g:each in="${books}" var="book">${book}</g:each>
从在我的用户域模型中按 desc 排序的 GORM 数据库对象列表中,我想将它们按 asc 排序(即,在视图中以相反的顺序)。例如,从数据库中获取用户的最新书籍,但将它们以相反的顺序插入到 Dom 中,最新书籍最后出现。
如何在我的 GSP 中执行反向操作?
控制器:
def books = user.books
普惠制:
<g:each in="${books}" var="book">${book}</g:each>
您可以将默认排序用于关系集合,如此处所述。所以如果你这样定义:
class User {
…
static hasMany = [books: Book]
static mapping = {
books sort: 'publishDate', order: 'asc'
}
}
The collection will be sorted on database level
<g:each in="${books.reverse()}" var="book">${book}</g:each>
编辑
得意忘形了:)。我宁愿建议:
def books = user.books?.reverse()
在控制器中。
(关注点分离,视图不应该有操作逻辑model
)
更新:
如果books
未在 中User
排序,则需要显式排序。
def newestBooks = user.books?.asList().sort{it.publishDate}
反向排序使用
def newestBooks = user.books?.asList().sort{-it.publishDate}