hibernate的底层是先映射后搜索,还是先搜索后映射?

问题描述

最近在做级联表的时候,发觉hibernate能用级联表映射的类对象中的一个属性进行排序,于是就有了这个想法,在底层,hibernate是先把数据库里的数据全部映射成对象后再展开搜索,还是其实仍然是sql搜索后组装成对象?如果是前者的话,几kw数据的表映射起来不是很慢?

解决方案

个人判断应该是一种策略,帮你把hql语句根据orm映射的关系,将对象名转换成表名,拼装成所连接的数据库的最合理的sql语句,执行查询,再进行对象封装。所以当你配置了显示sql时,是可以看到hibernate翻译过的sql语句的,将映射的字段都罗列出来,级联表做级联查询。各个数据的查询语句略有不同,储存布尔值或者其他的字段类型的方式也不完全一样,hibernate帮你把这些不一样进行统一化,你不用关注具体的数据库的sql,只需要关注hql,并且使得操作表数据结果集变成直接操作对象的结果集,比较方便。有人质疑hibernate的查询效率,其实撇开存储过程,单单查询表而言,效率几乎一样的。大数据量后才会有点差异。
解决方案二:
这个问题不需要思考,必须是sql从数据库中查出来,然后映射成对象。Hibernate在扫描entity的时候,按照其中的配置,将这写信息都保存在database metadata中,然后当你查询的时候,根绝hsql生成sql,查询。回来数据之后,更根据metadata生成对象。
解决方案三:
先映射后搜索。效率更高一些。

时间: 2024-09-20 00:46:44

hibernate的底层是先映射后搜索,还是先搜索后映射?的相关文章

Hibernate从入门到精通(十一)多对多双向关联映射

上次我们在中Hibernate从入门到精通(十)多对多单向关联映射讲解了一下多对多单向关联映射,这次我 们讲解一下七种映射中的最后一种多对多双向关联映射. 多对多双向关联映射 按照我们之前的惯例,先看一下相关类图和代码,具体如下: public class Role { private int id; private String name; private Set users; public int getId() { return id; } public void setId(int id

Hibernate从入门到精通(十)多对多单向关联映射

上一篇文章Hibernate从入门到精通(九)一对多双向关联映射中我们讲解了一下关于一对多关联映射的 相关内容,这次我们继续多对多单向关联映射. 多对多单向关联映射 在讲解多对多单向关联映 射之前,首先看一下相关类图和代码,具体如下: public class Role { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id;

Hibernate从入门到精通(九)一对多双向关联映射

上次的博文Hibernate从入门到精通(八)一对多单向关联映射中,我们讲解了一下一对多单向映射的相关 内容,这次我们讲解一下一对多双向映射的相关内容. 一对多双向关联映射 一对多双向关联映 射,即在一的一端存在多的一端的一个集合对象,在多的一端存在一的一端的一个对象,这样就可以保证在加 载一的一端或多的一端将被指向端的集合或对象加载上来,即保证双向关联. 一对多双向关联映射和 一对多单向关联映射的异同 一对多双向关联映射相应的类结构图和代码.具体如下: public class Classes

Hibernate从入门到精通(八)一对多单向关联映射

上次的博文Hibernate从入门到精通(七)多对一单向关联映射我们主要讲解了一下多对一单向关联映射, 这次我们继续讲解一下一对多单向映射. 一对多单向关联映射 在讲解一对多单向关联之前,按 照我们的惯例首先看一下其相应的类结构图和代码.具体如下: public class Classes { private int id; private String name; private Set students; public int getId() { return id; } public vo

Hibernate从入门到精通(七)多对一单向关联映射

上次的博文Hibernate从入门到精通(六)一对一双向关联映射中我们介绍了一下一对一双向关联映射,本 次博文我们讲解一下多对一关联映射 多对一单向关联映射 多对一关联映射与一对一关联映射类 似,只是在多对一的指向端可以存在多个对象,在指向端加载的时候,同时加载被指向端. 多对一和 一对一的异同 对比一对一单向关联映射和多对一单向关联映射,两者的相同之处在于在指向端被加载 的时候,指向端会被一起加载进来,这一点从如下类的结构图和代码中看出.(以下只给出多对一相关图示和 代码,一对一图示和代码参考

市场细分:进入后搜索引擎时代的搜索市场特点

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 记得03年的时候雅虎搜索是何等的威风,简直可以用牛气冲天来形容,那时候的雅虎搜索这4个字几乎就快和搜索这2个字划上等号了.这样的情况持续到了06年,雅虎被控诉捆绑流氓软件,加上百度,谷歌等一大批搜索引擎的强力进入市场,其地位渐渐地不断下滑,市场被不断的瓜分,到了09年,已经退到了4,5位的地位. 如今的搜索引擎已经进入了百谷时代,也就是百度和

在线等待,如何在程序中真接调如(百度,sohu.sogou)搜索片定义的关键字,比如我在程序中加入一个文本框,输入关键字后,点击百度搜索程序就直接调用百度搜索这个关键字,谢谢!

问题描述 在线等待,如何在程序中真接调如(百度,sohu.sogou)搜索片定义的关键字,比如我在程序中加入一个文本框,输入关键字后,点击百度搜索程序就直接调用百度搜索这个关键字,点sohu就调用SOHU,谢谢! 解决方案 解决方案二:我这有个百度的,我常用,你把下面的内容另存为HTML文件就行了.1.<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.0Transitional//EN"><!--savedfromurl=(0043)http:

中国搜索也是“搜索国家队”重新整合后新推出的产品

3月1日上午消息,盘古搜索和即刻搜索合并的中国搜索( chinaso.com )今日凌晨悄然上线,目前盘古搜索和即刻搜索的域名已经跳转到中国搜索页面.中国搜索也是"搜索国家队"重新整合后新推出的产品,和普通商业搜索相比增加国情.理论等垂直搜索内容. 去年开始,盘古搜索和即刻搜索两大国有背景的搜索引擎开始整合.去年11月,人民日报旗下的即刻搜索跳转到新华社旗下的盘古搜索.而此前即刻搜索已经历过高管离职.团队并入盘古搜索等问题.此后搜索国家队的后续整合一直在悄然推进之中. 实际上,去年底盘

视觉搜索是移动搜索的未来

愚人节当天发布消息很容易会让人产生联想.但这仍然没有抵挡住企业的"假日营销",比如苹果的道歉,再比关于百度的两则消息:一是百度宣布与知名娱乐商达成合作,通过"机器评委系统"进行海选,以机器方式替代人工面试筛选,网友只需拍摄或上传照片就能参与.在选秀节目和评委满天飞的情况下,机器也来凑热闹?昨晚笔者还得到一个劲爆消息:百度眼镜来了:百度宣布内测成功 Baidu Eye ,这是类似于 Google Glass 的设备,据称将配备超小液晶显示.语音操控.图像识别.骨传导技

情境搜索能否变革搜索未来?

最近一段,"情境"这个概念火了.先是Google的美女总裁在和TechCrunch总编对话的时候透露了"情境发现"(contextual discovery)将是明年Google要推出的重磅搜索应用,然后是微软亚洲研究院的高管也在谈这个概念,腾讯更是早在2009年就开始提.这两天,微博上关于"情境搜索"的讨论显得异常火爆. 作为围观者,我也在微博上简单说了下看法,但意犹未尽.从Google的美女总裁来说,所谓"情境搜索",即是