文档章节

Hibernate的四种抓取策略

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

subselect fetching是hibernate特有的抓取策略。它在抓取时机上有些介于lazy和eager之间(只是这样说,它实际上是配合lazy的一种抓取策略)。 一方面,它是在集合第一次被访问时才进行抓取,这有一些lazy的意味。但同时它的确预先抓取了一些“额外”的数据出来,而这些数据是要在后面使用到的,从而避免了多次select,这又有些eager的意味。 subselect比select智能的地方在于,它会把上次load出来的包含这个集合的结果集做为子查询来查所有的集合。之所以说这种方式适合用来抓取平行集合是因为:在此之前集合从属对象一定已经抓取出来了。


subselect fetching是抓取平行集合最好的方案。对于平行集合,由于笛卡尔积的问题,join fetch不能考虑了,如果使用select fetch,又有可能出现n+1次查询问题,最好的方案就是subselect fetch了。但是尽管如此,subselect fetching还是不能很好的解决抓取平行集合的问题。原因就在于它是一种全局抓取策略。当我们想要抓取平行集合元素所依赖的其他对象时就没有使用动态抓取的机会了。这确实是一个问题。目前我还在寻找解决方法。其中一个构想中的方案是:通过二级缓存,分步地加载平行集合,让最终返回是实体是完全抓取好的。

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

共有 人打赏支持
猪刚烈
粉丝 22
博文 708
码字总数 110
作品 1
海淀
程序员
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

park
2017/11/28
0
0
MyBatis和Hibernate优劣势对比

1、开发对比 开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernat...

黎嘉诚
2016/08/05
88
0
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 Hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

vshcxl
2016/03/28
41
0
MyBatis和Hibernate相比,优势在哪里?

1、开发对比开发速度 hibernate的真正掌握要比Mybatis来得难些。Mybatis框架相对简单很容易上手,但也相对简陋些。个人觉得要用好Mybatis还是首先要先理解好Hibernate。 开发社区 Hibernate ...

qq5923dd411b8fa
06/26
0
0
Hibernate QBC 语言

基本查询 以下是HQL/QBC/Native SQL三种查询策略 HQL策略: Java代码 session.createQuery("FROM Category c where c.name like 'Laptop%'"); session.createQuery("FROM Category c where c......

boonya
2015/03/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

python3.6 取余运算

python中取余运算逻辑如下: 如果a 与d 是整数,d 非零,那么余数 r 满足这样的关系: a = qd + r , q 为整数,且0 ≤ |r| < |d|。 经过测试可发现,python3.6中取余运算得到的 r 是正整数;...

colinux
8分钟前
0
0
[雪峰磁针石博客]软件测试专家工具包1web测试

web测试 本章主要涉及功能测试、自动化测试(参考: 软件自动化测试初学者忠告) 、接口测试(参考:10分钟学会API测试)、跨浏览器测试、可访问性测试和可用性测试的测试工具列表。 安全测试工具...

python测试开发人工智能安全
今天
3
0
JS:异步 - 面试惨案

为什么会写这篇文章,很明显不符合我的性格的东西,原因是前段时间参与了一个面试,对于很多程序员来说,面试时候多么的鸦雀无声,事后心里就有多么的千军万马。去掉最开始毕业干了一年的Jav...

xmqywx
今天
3
0
Win10 64位系统,PHP 扩展 curl插件

执行:1. 拷贝php安装目录下,libeay32.dll、ssleay32.dll 、 libssh2.dll 到 C:\windows\system32 目录。2. 拷贝php/ext目录下, php_curl.dll 到 C:\windows\system32 目录; 3. p...

放飞E梦想O
今天
1
0
谈谈神秘的ES6——(五)解构赋值【对象篇】

上一节课我们了解了有关数组的解构赋值相关内容,这节课,我们接着,来讲讲对象的解构赋值。 解构不仅可以用于数组,还可以用于对象。 let { foo, bar } = { foo: "aaa", bar: "bbb" };fo...

JandenMa
今天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部