文档章节

_Hibernate的两种Hql区别

 黑土地里捡豆包
发布于 2017/05/23 20:53
字数 629
阅读 16
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

现在有两条HQL查询语句,分别如下:

from Customer c inner join c orders o group by c age;(1)

select c ID,c name,c age,o ID,o order_number,o customer_ID from Customer c inner join c orders c group by c age;(2)

这两条语句使用了HQL语句的内连接查询(我们将在HQL语句的连接查询部分专门讨论),现在我们可以看出这两条查询语句最后所返回的结果是一样的,但是它们其实是有明显区别的,语句(1)检索的结果会返回Customer与Order持久化对象,而且它们会被置于Hibernate的Session缓存之中,并且Session会负责它们在缓存中的唯一性以及与后台数据库数据的同步,只有事务提交后它们才会从缓存中被清除;而语句(2)返回的是关系数据而并非是持久化对象,因此它们不会占用Hibernate的Session缓存,只要在检索之后应用程序不在访问它们,它们所占用的内存就有可能被JVM的垃圾回收器回收,而且Hibernate不会同步对它们的修改。在我们的系统开发中,尤其是Mis系统,不可避免的要进行统计查询的开发,这类功能有两个特点:第一数据量大;第二一般情况下都是只读操作而不会涉及到对统计数据进行修改,那么如果采用第一种查询方式,必然会导致大量持久化对象位于Hibernate的Session缓存中,而且Hibernate的Session缓存还要负责它们与数据库数据的同步。而如果采用第二种查询方式,显然就会提高查询性能,因为不需要Hibernate的Session缓存的管理开销,而且只要应用程序不在使用这些数据,它们所占用的内存空间就会被回收释放。因此在开发统计查询系统时,尽量使用通过select语句写出需要查询的属性的方式来返回关系数据,而避免使用第一种查询方式返回持久化对象(这种方式是在有修改需求时使用比较适合),这样可以提高运行效率并且减少内存消耗。㊣真正的高手并不是精通一切,而是精通在合适的场合使用合适的手段。

 

转_百度百科

上一篇: _ZXingCode原理
粉丝 1
博文 22
码字总数 14676
作品 0
浦东
程序员
私信 提问
加载中
请先登录后再评论。
高效 Java Web 开发框架--JessMA

JessMA 是功能完备的高性能 Full-Stack Web 应用开发框架,内置可扩展的 MVC Web 基础架构和 DAO 数据库访问组件(内部已提供了 Hibernate、MyBatis 与 JDBC DAO 组件),集成了 Action 拦截...

伤神小怪兽
2012/11/13
9.2K
3
galera cluster数据备份

可以用标准的数据库备份方法来备份cluster的节点数据。但这样的方法缺少GTID,这种备份也无法把节点恢复到预定的状态。此外,一些备份程序运行时可能会阻断集群操作。联合GTID来备份需要另外...

bupt晶
2015/12/23
849
0
深度吐槽hibernate

hibernate我很久都没有用了,最后一次用应该是3年前的一个企业项目,决定采用hibernate的并不是我,是我领导,我只是开发者。我所受的罪领导并不知道。正如我的每个hibernate项目那样,每次我...

闲大赋
2015/12/23
5.2K
56
AppleWatch开发入门四——Table视图的应用

AppleWatch开发入门四——Table视图的应用 一、Watch上的Table WatchOS中的TableView和iOS中的TableView还是有很大的区别,在开发之前,首先我们应该明白WatchOS中的Table有哪些局限性和特点...

珲少
2015/10/15
1.4K
1
使用MapReduce解决矩阵乘法的问题

摘要:在海量数据中淘金,已是各大互联网公司的既定目标,亚马逊是数据化运营的成功典范,Google、百度投巨资用于对海量数据进行深度学习研究,阿里把数据与平台、金融并列成为未来三大战略。...

passionfly
2015/09/07
1.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

OpenCV开发笔记(六十九):红胖子8分钟带你使用传统方法识别已知物体(图文并茂+浅显易懂+程序源码)

若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/article/details/102478062 本文章博客地址:h...

红模仿_红胖子
24分钟前
5
0
Dubbo

泛化调用 在提供端,比起常规的dubbo调用,泛化调用会多经过一个 GenericFilter,即判断是泛化方法才会经过该Filter进行处理。主要以下几个处理步骤: 1.首先根据方法签名,通过Java反射获取...

KafkaPlus
24分钟前
0
0
ThingJS 3D开发新体验,iframe元素提升网页加载性能

谷歌浏览器率先支持iframe元素,延迟加载有助于减少内存使用量、提升页面其它部分的加载速度并保存数据。ThingJS 3D开发有了新的体验。 在使用ThingJS制作物联网可视化项目时,需要使用Thing...

森友鹿锘
37分钟前
0
0
什么是TypeScript?为什么我要用它代替JavaScript? [关闭]

问题: Closed . 已关闭 。 This question needs to be more focused . 这个问题需要更加集中 。 It is not currently accepting answers. 它当前不接受答案。 Want to improve this questio......

法国红酒甜
47分钟前
27
0
键盘输入限制

// 用户输入的时候替换:nativeOnInput 替换负数setInputValue(e, row, prop) { if(e.target.value.includes('-')) { e.target.value = '-'+e.target.value.replace(/-/g, ......

赤月三号
50分钟前
21
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部