2
我试图执行使用类似原始的SQL查询原始SQL查询来的Grails:在当前事务
def dataSource;
Sql sql = new Sql(dataSource);
但是,似乎这个运行在它自己的独立的交易。因此,它忽略了在服务方法中完成的所有(未提交)更改。
在当前事务中运行原始sql查询的最佳方式是什么?
我试图执行使用类似原始的SQL查询原始SQL查询来的Grails:在当前事务
def dataSource;
Sql sql = new Sql(dataSource);
但是,似乎这个运行在它自己的独立的交易。因此,它忽略了在服务方法中完成的所有(未提交)更改。
在当前事务中运行原始sql查询的最佳方式是什么?
上面的代码会创建一个新的连接,因此是一个新的事务。您可以使用当前的Hibernate会话(注入sessionFactory)在当前事务中执行原始sql,如下所示。
def session = sessionFactory.getCurrentSession()
def results = session.createSQLQuery(yourQueryString)