Grails 查询不使用 GORM
Posted
技术标签:
【中文标题】Grails 查询不使用 GORM【英文标题】:Grails query not using GORM 【发布时间】:2011-06-03 19:08:46 【问题描述】:在 grails 中不使用 GORM 的最佳方式是什么?
我的查询似乎不适合 GORM 模型,该查询有一个子查询和一个计算字段。我在*** 上发帖已经没有回应,所以我决定采取不同的方法。我想在 grails 应用程序中查询不使用 GORM 的内容。有没有一种简单的方法来获取连接并遍历结果集?
【问题讨论】:
【参考方案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")
【讨论】:
这不支持我所知道的子查询 @Tihon 它支持子查询,因为它是 hibernate-criteria-query docs.jboss.org/hibernate/core/3.3/reference/en/html/… @Igs GORM 不是标准查询。 Criteria 查询看起来更像 GROM 而不是 HSQL,但并不相同。 GROM 正在使用元方法,标准查询将使用休眠标准查询。 有趣。你会如何在 groovy 中做到这一点?答案更适合我的另一个问题:***.com/questions/4577379/…如果你在那里回答,我会给你正确的答案。以上是关于Grails 查询不使用 GORM的主要内容,如果未能解决你的问题,请参考以下文章