一尘不染

Grails:当前事务中的原始SQL查询

hibernate

我正在尝试使用类似于以下内容的原始sql查询

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

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

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


阅读 346

收藏
2020-06-20

共1个答案

一尘不染

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

def session = sessionFactory.getCurrentSession()
def results = session.createSQLQuery(yourQueryString)
2020-06-20