Запрос 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")
}