【发布时间】:2011-06-08 16:52:39
【问题描述】:
想象一下我有这样的东西:
def example = {
def temp = ConferenceUser.findAllByUser(User.get(session.user))
[temp: temp]
}
解释我的问题: 尽管动态查找器非常易于使用且学习速度很快,但我必须将我网站的动态查找器替换为 sql 查询,因为这是必需的。由于我不太了解 SQL,所以我的主要问题是:
a) 我使用的是 SQLS 数据库,驱动程序和数据源配置良好,我的网站现在可以正常运行。如果我想用 sql 语句替换“findAllByUser”,我应该这样做:
def dataSource
...
def db = new Sql(dataSource)
def temp = db.rows("SELECT ... ")
b) 那行得通吗?我的意思是,如果我使用“findAllByUser”,临时对象将是一个列表,我是否需要打开与数据库的连接=?
【问题讨论】:
-
也许您应该详细解释一下为什么要用 sql 语句替换 findAllByUser,为什么这是一个要求? Grails 有许多不同的查询方式,在section 5.4 of the User Guide 中有说明
-
当然。在我的项目中,我需要使用 hibernate 和 sqls,因为我正在对两者进行评估。如果我不使用查询进行数据库搜索,那么要评估的 sqls 部分就没有了。
-
这很奇怪,考虑到 Grails 查找器的目的是让事情变得比编写 SQL 更容易。但有时要求可能真的……很奇怪。
-
对我来说听起来像是一个学校项目。