3

我正在尝试使用类似于

def dataSource;
Sql sql = new Sql(dataSource);

但是,这似乎在它自己的单独事务中运行。因此,它错过了在服务方法中之前完成的所有(未提交的)更改。

在当前事务中运行原始 sql 查询的最佳方法是什么?

4

1 回答 1

8

上面的代码将创建一个新连接,从而创建一个新事务。您可以使用当前的 Hibernate 会话(注入 sessionFactory)在当前事务中执行原始 sql,如下所示。

def session = sessionFactory.getCurrentSession()
def results = session.createSQLQuery(yourQueryString)
于 2013-05-12T13:39:43.527 回答