在Grails中不使用GORM查询内容的最佳方法是什么?
我的查询似乎不适合GORM模型,查询有子查询和计算字段。我已经在stackoverflow上发布了没有回复,所以我决定采取不同的方法。我想在grails应用程序中查询不使用GORM的内容。有没有简单的方法来获得连接并通过结果集?
答案 0 :(得分:37)
在服务或控制器中,您可以为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 ->
...
}
}
}
答案 1 :(得分:-1)
在大多数情况下,我使用标准查询。
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")
}