【发布时间】:2013-05-06 14:53:10
【问题描述】:
我正在尝试使用类似于
的方式执行原始 sql 查询def dataSource;
Sql sql = new Sql(dataSource);
但是,这似乎在它自己的单独事务中运行。因此,它会错过服务方法中在它之前完成的所有(未提交的)更改。
在当前事务中运行原始 sql 查询的最佳方式是什么?
【问题讨论】:
标签: hibernate grails grails-orm grails-2.0
我正在尝试使用类似于
的方式执行原始 sql 查询def dataSource;
Sql sql = new Sql(dataSource);
但是,这似乎在它自己的单独事务中运行。因此,它会错过服务方法中在它之前完成的所有(未提交的)更改。
在当前事务中运行原始 sql 查询的最佳方式是什么?
【问题讨论】:
标签: hibernate grails grails-orm grails-2.0
上面的代码会创建一个新的连接,从而产生一个新的事务。您可以使用当前的 Hibernate 会话(注入 sessionFactory)在当前事务中执行原始 sql,如下所示。
def session = sessionFactory.getCurrentSession()
def results = session.createSQLQuery(yourQueryString)
【讨论】: