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)