Запрос Grails не использует GORM - PullRequest
14 голосов
/ 05 января 2011

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

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

Ответы [ 2 ]

37 голосов
/ 05 января 2011

В сервисе или контроллере вы можете добавить внедрение зависимостей для компонента dataSource и напрямую использовать 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 ->
         ...
      }
   }
}
0 голосов
/ 05 января 2011

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

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")
}
...