开发者社区> 问答> 正文

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

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

展开
收起
长安归故里. 2020-01-31 14:05:31 2090 0
1 条回答
写回答
取消 提交回答
  • 个人判断应该是一种策略,帮你把hql语句根据orm映射的关系,将对象名转换成表名,拼装成所连接的数据库的最合理的sql语句,执行查询,再进行对象封装。所以当你配置了显示sql时,是可以看到hibernate翻译过的sql语句的,将映射的字段都罗列出来,级联表做级联查询。 各个数据的查询语句略有不同,储存布尔值或者其他的字段类型的方式也不完全一样,hibernate帮你把这些不一样进行统一化,你不用关注具体的数据库的sql,只需要关注hql,并且使得操作表数据结果集变成直接操作对象的结果集,比较方便。 有人质疑hibernate的查询效率,其实撇开存储过程,单单查询表而言,效率几乎一样的。大数据量后才会有点差异。

    2020-01-31 14:05:36
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《开放搜索查询分析服务架构分享》 立即下载
《开放搜索统一召回引擎实践》 立即下载
Phoenix 全局索引原理与实践 立即下载