【发布时间】:2010-11-10 00:48:31
【问题描述】:
如何使用特定字段对从数据库中选择的 groovy 列表进行排序 例子: 按主题排序的书桌
【问题讨论】:
-
这对代码示例非常有帮助,因此我们可以了解您在做什么。就目前而言,我们无法知道您是使用 Grails、GSQL、纯 JDBC,还是只是尝试对 ArrayList 进行排序。
标签: groovy
如何使用特定字段对从数据库中选择的 groovy 列表进行排序 例子: 按主题排序的书桌
【问题讨论】:
标签: groovy
使用纯 Groovy(不带 Grails),您可以:
bookList.sort{it.subject}
【讨论】:
要纯粹在 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") }
【讨论】:
def books = Book.list(sort:"subject", order:"asc")
编辑:你也可以在你的域类中有一个default sort order:
static mapping = {
sort = 'subject'
}
【讨论】: