准备好的语句、hibernate 和 HQL

2023-12-29

当将 HQL 转换为 SQL 时,Hibernate 在内部使用 JDBC 下的PreparedStatements。 HQL 中的内联参数是如何处理的?

example:

  public List<Student> loadAllStudentsByStatus(String status) {
    String queryString = "FROM Student student WHERE student.status = " + status;
    Query queryObject = currentSession().createQuery(queryString);
    return queryObject.list();
  }

状态将被“解析”并用作 SQL 中的参数,还是作为内联参数发送。

我争论背后的原因是“最佳实践”,以及重复调用的查询性能


它被内联发送。你绝对不想这样做status是客户端控制的值。

而是参数化它:

return currentSession()
    .createQuery("FROM Student student WHERE student.status = :status")
    .setParameter("status", status)
    .list();

也可以看看:

  • OWASP-休眠 http://www.owasp.org/index.php/Hibernate
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

准备好的语句、hibernate 和 HQL 的相关文章

随机推荐

  • 试图理解 lambda

    当我做 dict Alice 7898 Beth 9102 Cecil 3258 print filter lambda x x dict Alice 它显示 7898 当我做下一步的时候 dict Alice 2341 Beth 9102
  • robots.txt URL 格式

    根据这一页 http www robotstxt org robotstxt html User agent 或 Disallow 行中不支持 globbing 和正则表达式 然而 我注意到堆栈溢出机器人 txt https stackov
  • 比较:导入语句与 __import__ 函数

    作为问题的后续使用内置的 import 正常情况下 https stackoverflow com q 46173417 7051394 我进行了一些测试 并得到了令人惊讶的结果 我在这里比较经典的执行时间import声明 并呼吁 impo
  • 检测从父级(开启器)关闭的新选项卡

    我读过很多帖子 但似乎没有一个能准确回答我的问题 是否可以检测由打开的选项卡关闭target blank attr 我需要打开一个新选项卡 窗口 用户将选择一个选项 然后选项卡关闭 当该选项卡关闭时 我需要刷新原始窗口 父窗口或打开窗口 有
  • 根据日期计算数据表中的前几行

    如果这里的一些术语不正确 我深表歉意 我来自 SQL 背景 我才刚刚进入 R 世界 我有一个数据表 其中包含一系列按日期排序的条目 数据表中的字段之一是分组值 一个是时间值 随着数据按组排序 或键入 我是 R 的新手 仍然不确定差异 然后是
  • 如何从 WSL (Ubuntu) Bash 运行 Windows 可执行文件

    随着Windows 10 周年更新2016 年夏天 有机会跑步ubuntu新的二进制文件适用于 Linux 的 Windows 子系统 WSL https blogs msdn microsoft com wsl 2016 04 22 wi
  • 使用 putty 将 EFS 安装到红帽 ec2 实例上时无法解析 EFS 的 DNS 名称

    我遇到一个问题 无法使用 DNS 名称在 red hat ec2 实例上安装 EFS 它抛出错误 mount nfs4 无法解析服务器 us east 1a fs c2aXXXX efs us east 1 amazonaws com 名称
  • 类型错误:无法连接非 NDFrame 对象

    我有这个日期时间索引 dates DatetimeIndex 2017 06 09 2017 06 10 2017 06 11 2017 06 12 2017 06 13 2017 06 14 dtype datetime64 ns fre
  • 如何在 Symfony (Twig) 中包含可重用的小部件?

    所以 我对 Symfony 和 Twig 还很陌生 我想知道如何最好地在模板中包含 创建可重用代码片段 例如 假设您有一个想要在每个页面上显示的侧边栏 extends AppBundle base html twig block body
  • 管理文件java上的大数组

    我正在编写一个需要大量内存的Android应用程序 有时我的双数组达到兆字节的大小 并且我以某种方式需要在可行的时间提供所有可用的数据 我发现大多数时候我无法将它们全部放在 RAM 上 所以我正在寻找一个java API 它可以让我创建在文
  • 动态 Linq 包含多个值

    如何在 Dynamic Linq 中将多个值与 Contain 一起使用 正常 Linq 的预期 using System using System Linq public class Simple public static void M
  • 实体框架错误

    我在实体框架中编写 SQl 查询 var query1 database Database SqlQuery
  • 使用 swift 关闭其他应用程序

    有没有办法快速关闭正在运行的应用程序 例如 如果我创建的应用程序需要关闭 safari 这是用于关闭正在运行的应用程序的 Swift 5 版本不使用 AppleScript AppleScript是一种完美的方式 但不是唯一的方式 本例中以
  • 如何获取特定列的最后一行并使用“appendRow”将数据附加到该行

    我无法找出如何获取其中包含数据的特定列的最后一行 如下所示 确定单列中的最后一行 https stackoverflow com questions 17632165 determining the last row in a single
  • 使用 Stream.BeginRead 进行顺序异步读取

    我正在编写一个类 该类公开流的一部分以供阅读 由于数据可能同时从多个不同的分段读取 因此在任一时间只能有一个操作处于活动状态 我的想法是在每次操作之前锁定底层流 正在锁定周围的流BeginRead调用足以确保从底层流中不同位置的并发异步读取
  • C++ 中的静态可变成员变量?

    为什么或出于什么原因不可能在 C 中将类成员变量声明为static mutable 就像是 static mutable int t This won t compile 对我来说 没有理由禁止这样的声明 例如 出于维护全局类范围统计数据等
  • 使用 selenium C# 在文本字段上执行键盘敲击“Ctrl + A”、“Ctrl + C”和“Ctrl + V”

    How to simply want to input a value in a text box select the complete text from the text box using Ctrl a then copy it u
  • Linux 上共享对象 (.so) 的异常

    我有一个名为 ftest 的测试程序 它加载包含测试的 so 文件并运行在其中找到的测试 其中一项测试加载并运行一个 so 其中包含用于我们的 O RM 的 Postgres 数据库驱动程序 当 Postgres 驱动程序抛出该 so 文件
  • 从 Azure Functions 连接到 WCF 服务并对程序集绑定进行故障排除

    在哪里可以看到 Azure 函数尝试加载的程序集 就像Windows上的fuslogvw Update按要求更新标题以更好地反映已接受的答案 Update 将我的代码更改为使用 WebClient 手动 构造 SOAP 请求并且它可以工作
  • 准备好的语句、hibernate 和 HQL

    当将 HQL 转换为 SQL 时 Hibernate 在内部使用 JDBC 下的PreparedStatements HQL 中的内联参数是如何处理的 example public List