文档章节

Join取代不了Fetch,Fetch的独到之处在于打通了对象间的关联关系

猪刚烈
 猪刚烈
发布于 2014/10/12 11:39
字数 286
阅读 11
收藏 0

确认一个问题:

1.通过Join获得的集合,即使是集合的全体,在通过它的宿主对象访问这个集合时,还是会重新生成SQL来加载这个集合?

验证结果:的确如此。看来Hibernate还没有如此智能。这个问题也从侧面解释了join和fetch的不同:join可以有 过滤 条件,不一定会将关联对象全部取出。但是fetch总是是将关联对象全部取出的。经过join加载出的对象应被视为独立的个体,hibernate不会设定它与已存在对象间的关系。这就是为什么通过join取得的集合, 在通过它的宿主对象访 问这个集合时,还是会重新生成SQL来加载这个集合的原因。但是通过fetch取得的对象就不同了。fetch出来的对象都已经设定了它们之间的关联关系,可以自由导航而不会生成任何sql重新查询!

本文转载自:http://blog.csdn.net/bluishglc/article/details/5597043

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
hibernate N+1问题

Hibernate N+1 问题及解决办法 问题出现的原因: Hibernate 中常会用到 set , bag 等集合表示 1 对多的关系,在获取实体的时候就能根据关系将关联的对象或者对象集取出,还可以设定 cacade...

毅屺
2016/03/20
77
0
hibernate annotation

我们都知道hibernate3可以调用存储过程或函数,但是有一定的限制(具体可以查看hibernate官方手册)。 据我分析这段代码应该是用来分析字符串是否是调用存储过程或函数的语句。 解决方法: 1....

blooms
2012/11/15
0
0
hibernate fetch属性

Hibernate的fetch="join"和fetch="select" 的一点分析 fetch参数指定了关联对象抓取的方式是select查询还是join查询,select方式时先查询返回要查询的主体对象(列表),再根据关联外键id,每...

zdatbit
2016/07/18
14
0
Hibernate3简单总结part1

Hibernate3简单总结 1. 简单概念 hibernate是位于数据层(持久层)的框架。主要用于封装对数据的操作 hibernate 作用是将面向关系型数据库的操作,转换成面向对象的操作 因此,需要有数据库与...

我是小个子啊
2016/04/19
9
0
hibernate读书笔记-懒加载《-》

懒加载是指程序推迟访问数据库,这样做可以保证有时候不必要的访问数据库,因为访问一次数据库是比较耗时的。 一、load方法的懒加载 先看如下代码段 [java] view plaincopyprint? <EMBED id=...

xiaml
2014/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

shell-日志脚本小实验

1.查找日志2018-8-15,求得那一分钟访问量最大。 #/bin/bash#from cc#2018-8-15#2018-08-15.log 哪一分钟 访问量 最大for d in `ls /data/nginx/logs/`doif [ -a 2018-08-15...

chencheng-linux
昨天
0
0
Android中的设计模式之状态模式

参考 《设计模式:可复用面向对象软件的基础 》5.8 State 状态 对象行为型模式 《Android源码设计模式解析与实战》第7章 随遇而安--状态模式 意图 允许一个对象在其内部状态改变时改变它的行...

newtrek
昨天
0
0
xshell端 vim没有颜色

说明 使用xshell连接服务器的时候,使用vim打开文档没有颜色 解决方法: 1.在更目录home或者etc下找到vim的配置文件vimrc 2.vim打开它找个坑,添加下面这个东西 set t_Co=256 3.保存退出,就...

杉下
昨天
0
0
spring 资料

spring boot http://www.ityouknow.com/springboot/2016/01/06/spring-boot-quick-start.html

zaolonglei
昨天
2
0
TypeScript基础入门 - 函数 - 简介

转载 TypeScript基础入门 - 函数 - 简介 项目实践仓库 https://github.com/durban89/typescript_demo.gittag: 1.1.6 为了保证后面的学习演示需要安装下ts-node,这样后面的每个操作都能直接...

durban
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部