【问题标题】:how can i sort a groovy list selected from database using specific field如何使用特定字段对从数据库中选择的 groovy 列表进行排序
【发布时间】:2010-11-10 00:48:31
【问题描述】:

如何使用特定字段对从数据库中选择的 groovy 列表进行排序 例子: 按主题排序的书桌

【问题讨论】:

  • 这对代码示例非常有帮助,因此我们可以了解您在做什么。就目前而言,我们无法知道您是使用 Grails、GSQL、纯 JDBC,还是只是尝试对 ArrayList 进行排序。

标签: groovy


【解决方案1】:

使用纯 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")

      编辑:你也可以在你的域类中有一个default sort order

      static mapping = {
          sort = 'subject'
      }
      

      【讨论】:

      • 你假设他正在使用 Grails,尽管问题中没有提到
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-03-29
      • 2013-12-03
      • 2016-11-18
      • 1970-01-01
      • 2015-05-19
      • 1970-01-01
      相关资源
      最近更新 更多