为了账号安全,请及时绑定邮箱和手机立即绑定

JPA和Hibernate-条件与JPQL或HQL

JPA和Hibernate-条件与JPQL或HQL

富国沪深 2019-11-04 15:18:31
使用Criteria或HQL有什么利弊?Criteria API是在Hibernate中表达查询的一种很好的面向对象的方式,但是有时候Criteria Queries比HQL更难以理解/构建。您何时使用标准以及何时使用HQL?在哪种用例中,您更喜欢什么?还是只是口味问题?
查看完整描述

3 回答

?
慕运维8079593

TA贡献1876条经验 获得超5个赞

我最喜欢动态查询的条件查询。例如,动态添加一些订购或根据某些参数省去某些零件(例如限制)要容易得多。


另一方面,我将HQL用于静态和复杂查询,因为它更易于理解/阅读HQL。另外,我认为HQL功能更强大,例如对于不同的联接类型。


查看完整回答
反对 回复 2019-11-04
?
杨__羊羊

TA贡献1943条经验 获得超7个赞

Criteria是一种面向对象的API,而HQL则是字符串连接。这意味着适用面向对象的所有好处:

  1. 在其他所有条件相同的情况下,OO版本不太容易出错。任何旧字符串都可以追加到HQL查询中,而只有有效的Criteria对象才能将其放入Criteria树中。实际上,条件类受到更多的限制。

  2. 使用自动完成功能,OO更容易发现(因此,至少对于我来说更易于使用)。您不一定需要记住查询的哪一部分去了哪里。IDE可以帮助您

  3. 您也不需要记住语法的细节(例如哪些符号在哪里)。您只需要知道如何调用方法和创建对象。

由于HQL非常像SQL(大多数开发人员已经很了解),所以这些“不必记住”的参数就没有那么重要了。如果HQL更加不同,那么这将更加重要。


查看完整回答
反对 回复 2019-11-04
  • 3 回答
  • 0 关注
  • 1010 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信