Grails: Raw SQL query in the current transaction

坚强是说给别人听的谎言 提交于 2019-12-06 09:03:54

问题


I am trying to execute a raw sql query using something similar to

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

But, it seems that this runs in a separate transaction of its own. It therefore misses all the (uncommitted) changes done before it in the service method.

What is the best way to run a raw sql query in the current transaction?


回答1:


The above code would create a new connection, hence a new transaction. You can use the current Hibernate session(injecting sessionFactory) to execute a raw sql in the current transaction as below.

def session = sessionFactory.getCurrentSession()
def results = session.createSQLQuery(yourQueryString)


来源:https://stackoverflow.com/questions/16507369/grails-raw-sql-query-in-the-current-transaction

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!