как я могу отсортировать заводной список, выбранный из базы данных, используя определенное поле

#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, хотя это не упоминалось в вопросе