1.延迟加载

1>类级别的延迟加载

指的是通过oad方法查询某个对象的时候,是否采用延迟, session. load(Customer class1L)

类级别延迟加载通过<class></class>上的laxy进行配置,如果让lazy失效

    <class name="com.work.entity.Customer" table="cst_customer" lazy="true">

◆将lazy设置为 false.

◆将持久化类使用fna修饰

◆ Hibernate. Initialize()方法

2>关联级别的延迟加载

指的是在查询到某个对象的时候,查询其关联的对象的时候,是否采用延迟加载。

Customer customers=session. get( Customer.class, 1L)

customer. getlinkman0()一通过客户获得联系人的时候,联系人对象是否采用了延迟加载,称为是关联级别的延迟。

抓取策略往往会和关联级别的延迟加载一起使用,优化语句。

2.抓取策略的概述

1>抓取策略的通过一个对象抓取到关联对象需硬发送SQL语句,SOL语句如何发送,发送成什么样格式通过策略进行配置。

通过<set>或者< many-to-one>上通过 fetch属性进行设置fetch和这些标签上的lary如何设置优化发送的saL语句

<set>上的 fetch和layfetch

2>fatch抓取策略,控制SOL语句格式:(fatch控制发送语句的格式)

select :默认值,发送普通的 select语句,查询关联对象

join:发送一条迫切左外连接查询关联对象

subselect:发送一条子查询查询其关联对象

3>lazy延迟加载,控制查询关联对象的时侯是否采用延迟(lazy控制的是发送语句的时间

true:默认值,查询关联对象的时候,采用延迟加载

false:查询关联对象的时候,不采用延迟加载

extra:及其懒情。(用到什么数据查询什么数据)

<---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------->

<many-to-one>上的 fetch和layfetch

1>fatch抓取策略,控制SOL语句格式:(fatch控制发送语句的格式)

select :默认值,发送普通的 select语句,查询关联对象

join:发送一条迫切左外连接查询关联对象

2>lazy延迟加载,控制查询关联对象的时侯是否采用延迟(lazy控制的是发送语句的时间

proxy:默认值,proxy的值取决于另一端<classs>lazy=""</class>lazy的值

false:查询关联对象的时候,不采用延迟加载

在开发中一般使用默认值:特殊情况下可能使用join

3.批量抓取策略

当我们关联查询所有客户以及所有客户下的所有联系人时会发送大量的查询语句,此时可以使用批量抓取策略

1>设置batch-size="4" 一次抓取的数据

<set name="linkMans" cascade="save-update,delete" batch-size="4" >

设置抓取策略之后(2条查询语句)

hibernate_06_hibernate的延迟加载和抓取策略的更多相关文章

  1. hibernate的延迟加载和抓取策略

    一,延迟加载 1.实体类延迟加载 通过代理机制完成,由javassist类库实现运行时代理,修改实体类的字节码实现了运行时代理     <class lazy="true|false& ...

  2. hibernate 延迟加载和抓取策略

    一.延迟加载 1.简单查询get,load 针对对象本身延迟或即时 当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load ...

  3. 【转】hibernate延迟加载和抓取策略

    一.延迟加载 1.简单查询get,load 针对对象本身延迟或即时 当使用load方法来得到一个对象时,此时hibernate会使用延迟加载的机制来加载这个对象,即:当我们使用session.load ...

  4. 十、hibernate的延迟加载和抓取策略

    延迟加载:控制sql语句发送时机 抓取策略:控制sql语句格式,子查询.连接查询.普通sql 延迟加载 延迟加载(lazy),也叫做懒加载:执行到该行代码时,不发送sql进行查询,只有在真正使用到这个 ...

  5. Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制

    目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 ...

  6. Hibernate之加载策略(延迟加载与即时加载)和抓取策略(fetch)

    假设现在有Book和Category两张表,表的关系为双向的一对多,表结构如下: 假设现在我想查询id为2的那本书的书名,使用session.get(...)方法: Session session=H ...

  7. 八 Hibernate延迟加载&抓取策略(优化)

    面试:Hibernate效率很低,如何优化? 缓存怎么弄的,语句怎么优化? 聊聊一级缓存,聊聊抓取策略和延迟加载,聊聊批量抓取 延迟加载: 一般不单独使用,和延迟加载一起使用 延迟加载:lazy(懒加 ...

  8. 【Hibernate 8】Hibernate的调优方法:抓取策略

    在上一篇博客中,介绍了Hibernate的缓存机制.合理的配置缓存,可以极大程度上优化Hibernate的性能.这篇博客,介绍另外一个调优方式:抓取策略. 一.什么是抓取策略 抓取策略(fetchin ...

  9. 029 hibernate抓取策略

    实例A引用实例B,B如果是代理的话(比如多对一关联中):如果遍历A的查询结果集(假设有10条记录),在遍历A的时候,访问B变量,将会导致n次查询语句的发出!这个时候,如果在B一端的class上配置ba ...

随机推荐

  1. git基础1

    git:     团队协作开发     版本管理      创建项目的文档     初始化   编写项目   把文件add到git仓库,其实是放到了git的代码暂存区   工作区有一个隐藏目录 .gi ...

  2. Linux 系统分区与目录介绍

    分区 分区类型 主分区:总共最多只能分四个 扩展分区: 只能有一个,也算作主分区的一种,也就是说主分区加扩展分区最多有四个. 但是扩展分区不能存储数据和格式化,必须再划分成逻辑分区才能使用. 逻辑分区 ...

  3. HTML——表单标签

    表单标签(掌握) 现实中的表单,类似我们去银行办理信用卡填写的单子. 如下图: 目的是为了收集用户信息. 在我们网页中, 我们也需要跟用户进行交互,收集用户资料,此时也需要表单. 在HTML中,一个完 ...

  4. Go 逻辑运算符

    Go 逻辑运算符 package main import "fmt" func main() { var a bool = true var b bool = false if ( ...

  5. NX二次开发-UFUN文件选择对话框UF_UI_create_filebox

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> UF_initialize(); //文件选择对话框 char sPromptSt ...

  6. mysql最新版与mysql5.6的兼容问题

    最近公司在给别的企业打了一个项目,在公司本地使用的是mysql 5.6,但是搭建的项目的mysql版本是最新版5.7以后吧,所以有些sql在执行上出了一点问题 目前发现的是: 1: 在5.6版本下先o ...

  7. topjui.core.js

    var defaultConfig = { pageLoadComplete: false, config: { ctx: "", mainPage: false, pkName: ...

  8. 在Debian中安装VNC Server

    大部分情况下我们用ssh就可以登录linux服务器了.但有时候我们的程序需要在图形界面下运行,这时我们就要用到vnc server这个软件了. 在Debian下安装vnc server很简单的,只要几 ...

  9. Spring 源码学习——加载 Bean

    继上次注册 bean 之后好久没更新,这两天有空查了查资料也自己看了看 spring BeanFactory 的 getBean(beanName); 这个方法.因时间有限不能像之前那样复制代码并一行 ...

  10. 【转】tomcat系统架构分析

    https://blog.csdn.net/wsl211511/article/details/51622991