我正在尝试使用类似于以下内容的原始sql查询
def dataSource; Sql sql = new Sql(dataSource);
但是,这似乎在自己的单独事务中运行。因此,它会错过在service方法中之前完成的所有(未提交的)更改。
在当前事务中运行原始sql查询的最佳方法是什么?
上面的代码将创建一个新的连接,从而创建一个新的事务。您可以使用当前的Hibernate会话(注入sessionFactory)在当前事务中执行原始sql,如下所示。
def session = sessionFactory.getCurrentSession() def results = session.createSQLQuery(yourQueryString)