首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate createQuery vs get

hibernate createQuery vs get
EN

Stack Overflow用户
提问于 2013-03-15 07:22:55
回答 2查看 1.7K关注 0票数 4

createQuery相比,get有哪些优势?

我可以看到,在不必解析HQL的情况下,可能会有轻微的性能改进,但是使用get而不是createQuery还有其他主要的优势吗?

EN

回答 2

Stack Overflow用户

发布于 2013-03-15 07:27:13

首先,它的输入速度更快,可读性更好,并且清晰地表达了意图:通过ID获取实体,而且基本上不可能出错,而HQL查询中可能会有打字错误。

关于性能,它的主要优点是,只有当实体还不在会话缓存中时,它才执行select语句。每次都会执行HQL查询。如果您有二级缓存,并且实体已经在二级缓存中,则get()将完全避免执行查询。

票数 5
EN

Stack Overflow用户

发布于 2017-06-17 19:35:06

get()直接使用session来检索对象。

  • get()只有在你想加载一个对象时才有用,比如SQL SELECT。像UPDATE.
  • limited ()和persist()这样的
  • 会导致SQL DELETE中的SQL INSERT、delete(),以及SQL UPDATE.
  • limited控件中的merge(),我们需要指定需要提取的实体。

createQuery()使用HQL

  • 使用HQL,我们可以编写所有的CRUD查询。HQL是hibernate自己的查询语言,它被用来在hibernate程序上执行批量操作。
  • 的一种面向对象的形式被称为

  • 这里我们将用POJO类变量名替换表列名称,用POJO类名替换表名。为了得到HQL,用其他替代方法编写是非常困难的。使用HQL我们可以更快地实现。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15422043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档