Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Grails: Raw SQL query in the current transaction

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?

like image 561
Amit Avatar asked Jan 23 '26 01:01

Amit


1 Answers

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)
like image 90
dmahapatro Avatar answered Jan 25 '26 22:01

dmahapatro



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!