一、区分延迟和立即检索

  • 立即检索:

    • 当执行某行代码的时候,马上发出SQL语句进行查询.
    • get()
  • 延迟检索:
    • 当执行某行代码的时候,不会马上发出SQL语句进行查询.当真正使用这个对象的时候才会发送SQL语句.
    • load();

二、类级别检索和关联级别检索

  • 类级别的检索:

    • <class>标签上配置lazy
  • 关联级别的检索:

    • /上面的lazy.
  • 查询某个对象的时候,是否需要查询关联对象?

  • 查询关联对象的时候是否采用延迟检索?

  • 从一的一方关联多的一方:

    • fetch:控制sql语句的类型

      • join : 发送迫切左外连接的SQL查询关联对象.fetch=”join”那么lazy被忽略了.
      • select : 默认值,发送多条SQL查询关联对象.
      • subselect : 发送子查询查询关联对象.(需要使用Query接口测试)
    • lazy:控制关联对象的检索是否采用延迟.

      • true : 默认值, 查询关联对象的时候使用延迟检索
      • false : 查询关联对象的时候不使用延迟检索.
      • extra : 及其懒惰.
    • 如果fetch是join的情况,lazy属性将会忽略.

  • 在多的一方关联一的一方:

    • fetch:控制SQL语句发送格式
    • join : 发送一个迫切左外连接查询关联对象.fetch=”join”,lay属性会被忽略.
    • select : 发送多条SQL检索关联对象.
    • lazy:关联对象检索的时候,是否采用延迟
    • false : 不延迟
    • proxy : 使用代理.检索订单额时候,是否马上检索客户 由Customer对象的映射文件中上lazy属性来决定.
    • no-proxy : 不使用代理

【Hibernate】抓取策略的更多相关文章

  1. Hibernate 抓取策略fetch-1 (select join subselect)

    原文 :http://4045060.blog.51cto.com/4035060/1088025 部分参考:http://www.cnblogs.com/rongxh7/archive/2010/0 ...

  2. 029 hibernate抓取策略

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

  3. hibernate抓取策略

    抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略.抓取策略可以在O/R映射的 ...

  4. Hibernate 抓取策略

    抓取策略: 为了改变SQL语句执行的方式 当应用程序需要在Hibernate实体对象的关联关系间进行导航的时候,Hibernate如何获取关联对象的策略 抓取策略可以在O/R映射的元数据中声明,也可以 ...

  5. Hibernate 抓取策略fetch-2 (批量抓取batch-size以及hibernate.jdbc.fetch_size、hibernate.jdbc.batch_size)

    类关系: User N~1 Group 测试代码: System.out.println("1"); List stuList = session.createQuery(&quo ...

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

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

  7. 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】

    一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...

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

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

  9. Hibernate中的多表查询及抓取策略

    1.Hibernate中的多表查询 1.1SQL中的多表查询 [交叉连接] select * from A,B; [内连接] 显示内连接:inner join(inner 可以省略) Select * ...

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

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

随机推荐

  1. iOS 当键盘覆盖textFiled时简单的处理方法

    //方法1--- - (void)textFieldDidBeginEditing:(UITextField *)textField { if (iPhone5) { return; } else { ...

  2. mysql的root用户无法给普通用户授权问题处理

    1.查看Grant_priv是Y还是N 执行下面 select * from mysql.user where User='root' and Host='%'\G; 下图查看结果为Grant_pri ...

  3. Java遍历日期代码

    import java.util.ArrayList; import java.util.List; public class DateTraveller { public static List&l ...

  4. iOS-MPMoviePlayerViewController使用

    其实MPMoviePlayerController如果不作为嵌入视频来播放(例如在新闻中嵌入一个视频),通常在播放时都是占满一个屏幕的,特别是在 iPhone.iTouch上.因此从iOS3.2以后苹 ...

  5. fastJson工具类

    jar:fast.jar 依赖: <!-- fastjson --> <dependency> <groupId>com.alibaba</groupId&g ...

  6. 【c# 学习笔记】c#中的类

    1.什么是类: 在c#中类是一种数据结构,它可以包括数据成员.函数成员(方法.属性.事件.索引器.索引符.实例构造函数.静态构造函数和析构函数.及嵌套类型). 属性是,类中字段和方法的结合体,通过定义 ...

  7. ES6-类(Class)

    ES6躬行记(20)——类 ES6正式将类(Class)的概念在语法层面标准化,今后不必再用构造函数模拟类的行为.而ES6引入的类本质上只是个语法糖(即代码更为简洁.语义更为清晰),其大部分功能(例如 ...

  8. python 创建虚拟环境(virtualenv)

    原文地址:https://www.jianshu.com/p/2645d8f2e690 另附连接:Linux环境下虚拟环境virtualenv安装和使用 virtualenv 安装 1.Install ...

  9. Python sys.path永久添加

    在用户目录下,找到隐藏文件.bashrc 或 .zshrc 文件然后在末尾添加 export PYTHONPATH=$PYTHONPATH:/home/dev/custom_path 操作:vim . ...

  10. Mysql统计每年每个月的数据——详细教程

    Mysql统计每年每个月的数据(前端页面统计图实现) 最终想实现的效果图,在这里就不多废话了,直接上效果图,由于测试数据有几个月是为0的,所以数据图看着会有点怪怪. 接下来是数据库的两个表,这里直接给 ...