#groovy
#groovy
Вопрос:
как я могу отсортировать заводной список, выбранный из базы данных, используя конкретное поле пример: таблица книг, отсортированная по теме
Комментарии:
1. Было бы очень полезно привести пример кода, чтобы мы могли получить представление о том, что вы делаете. В нынешнем виде у нас нет способа узнать, используете ли вы Grails, GSQL, чистый JDBC или вы просто пытаетесь отсортировать ArrayList.
Ответ №1:
С помощью pure Groovy (без Grails) вы можете сделать:
bookList.sort{it.subject}
Ответ №2:
Чтобы сделать это чисто в 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") }
Ответ №3:
def books = Book.list(sort:"subject", order:"asc")
РЕДАКТИРОВАТЬ: У вас также может быть порядок сортировки по умолчанию в вашем классе домена:
static mapping = {
sort = 'subject'
}
Комментарии:
1. Вы предполагаете, что он использует Grails, хотя это не упоминалось в вопросе