如何使用特定字段对从数据库中选择的groovy列表进行排序 例: 按主题划分的书桌
答案 0 :(得分:1)
使用纯Groovy(不含Grails),您可以:
bookList.sort{it.subject}
答案 1 :(得分:0)
def books = Book.list(sort:"subject", order:"asc")
编辑:您的域类中也可以有default sort order:
static mapping = {
sort = 'subject'
}
答案 2 :(得分:0)
要完全用groovy(没有grails),你可以做这样的事情:
import groovy.sql.Sql
def dbUrl = "jdbc:postgresql://localhost/test-db"
def dbUser = "test"
def dbPassword = "test"
def dbDriver = "org.postgresql.Driver"
def sql = Sql.newInstance(dbUrl, dbUser, dbPassword, dbDriver)
sql.eachRow("select * from book order by subject asc") { row ->
println "${row}\n"
}
在grails中,您有几个选择。您可以使用HQL:
Book.findAll("from Book order by subject asc")
或其中一种动态查找器:
Book.findAllByName(name, [sort: 'subject', order: 'asc'])
或标准搜索:
Book.withCriteria { order("subject", "asc") }