Запрос Grails не использует GORM

Каков наилучший способ запроса чего-либо без использования GORM в grails?

У меня есть запрос, который, похоже, не подходит для модели GORM, запрос имеет подзапрос и вычисленное поле. Я отправил на qaru.site/info/366438/... уже без ответа, поэтому решил принять другой подход. Я хочу запросить что-то, не использующее GORM в приложении grails. Есть ли простой способ получить соединение и пройти через результирующий набор?

Ответы

Ответ 1

В службе или контроллере вы можете добавить инъекцию зависимостей для dataSource bean и использовать groovy.sql.Sql или JDBC напрямую, если вы мазохист.

import groovy.sql.Sql

class DataService {

   def dataSource

   void runQuery(...) {
      def sql = new Sql(dataSource)
      sql.eachRow('select * from foo') { row ->
         ...
      }
   }
}

Ответ 2

В большинстве случаев я использую критерии запросов.

def c = Account.createCriteria()
def results = c {
    between("balance", 500, 1000)
    eq("branch", "London")
    or {
        like("holderFirstName", "Fred%")
        like("holderFirstName", "Barney%")
    }
    maxResults(10)
    order("holderLastName", "desc")
}