当前位置: 首页 > 面试题库 >

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

邢昂然
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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


 类似资料:
  • 在模型查询API不够用的情况下,你可以使用原始的sql语句。django提供两种方法使用原始sql进行查询:一种是使用Manager.raw()方法,进行原始查询并返回模型实例;另一种是完全避开模型层,直接执行自定义的sql语句。 警告 编写原始的sql语句时,应该格外小心。每次使用的时候,都要确保转义了参数中的任何控制字符,以防受到sql注入攻击。更多信息请参阅防止sql注入。 进行原始查询 r

  • 我正在尝试使用sqlalchemy执行原始sql查询,并想知道什么是“正确”的方法。 我的查询如下(目前): 我不喜欢的是字符串格式和缺乏任何参数处理(你好music_volume引号:-D)。 我试图遵循这个答案: 如何在SQLAlchemy flask应用程序中执行原始SQL 应用我读到的内容后,我的代码片段如下所示: 然而,我得到的错误,mv和ml是不能识别的参数。 如果我把我的代码片段改成

  • 本文向大家介绍MySQL 如何查询当前最新事务ID,包括了MySQL 如何查询当前最新事务ID的使用技巧和注意事项,需要的朋友参考一下 写在前面:在个别时候可能需要查看当前最新的事务 ID,以便做一些业务逻辑上的判断(例如利用事务 ID 变化以及前后时差,统计每次事务的响应时长等用途)。 通常地,我们有两种方法可以查看当前的事务 ID: 1、执行 SHOW ENGINE INNODB STATUS

  • 在用户模型中,我定义了关系: 它返回如何获得包括参数的完整查询? 我还定义了与post模型的关系: 如何使用参数查看完整的关系查询?

  • 问题内容: 当服务中抛出RuntimeException时,我使用Grail的回滚功能将所有服务更新为事务性。在大多数情况下,我都这样做: 无论如何,我想验证这是否确实会回滚事务……这让我开始思考是否在这一点上已经提交了。此外,如果没有,设置flush:true会改变这一点吗?我对Spring / Hibernate如何完成所有这些工作不是很熟悉:) 问题答案: 是的,那样做。 默认情况下,Gra

  • 问题内容: 我在控制器的函数中。 因此,从表单中,我得到了一个变量的值,说: 然后,我需要在WHERE语句中嵌入该变量(即它的值)。如果我对值进行硬编码,它将带来正确的结果,但是我已经尝试了各种方法来插入该变量而没有成功。好吧,假设我设法使用了该变量,那么我将不得不研究绑定以避免SQL注入,但是到目前为止,我要说的是,看看该变量是否可以在查询中使用。 我已经试过了,双引号,串联。$ vx。,花括号