【Hibernate】抓取策略
一、区分延迟和立即检索
- 立即检索:
- 当执行某行代码的时候,马上发出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】抓取策略的更多相关文章
- Hibernate 抓取策略fetch-1 (select join subselect)
原文 :http://4045060.blog.51cto.com/4035060/1088025 部分参考:http://www.cnblogs.com/rongxh7/archive/2010/0 ...
- 029 hibernate抓取策略
实例A引用实例B,B如果是代理的话(比如多对一关联中):如果遍历A的查询结果集(假设有10条记录),在遍历A的时候,访问B变量,将会导致n次查询语句的发出!这个时候,如果在B一端的class上配置ba ...
- hibernate抓取策略
抓取策略(fetching strategy) 是指:当应用程序需要在(Hibernate实体对象图的)关联关系间进行导航的时候, Hibernate如何获取关联对象的策略.抓取策略可以在O/R映射的 ...
- Hibernate 抓取策略
抓取策略: 为了改变SQL语句执行的方式 当应用程序需要在Hibernate实体对象的关联关系间进行导航的时候,Hibernate如何获取关联对象的策略 抓取策略可以在O/R映射的元数据中声明,也可以 ...
- 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 ...
- Hibernate之加载策略(延迟加载与即时加载)和抓取策略(fetch)
假设现在有Book和Category两张表,表的关系为双向的一对多,表结构如下: 假设现在我想查询id为2的那本书的书名,使用session.get(...)方法: Session session=H ...
- 【Java EE 学习 48】【Hibernate学习第五天】【抓取策略】【二级缓存】【HQL】
一.抓取策略. 1.hibernate中提供了三种抓取策略. (1)连接抓取(Join Fetch):这种抓取方式是默认的抓取方式.使用这种抓取方式hibernate会在select中内连接的方式获取 ...
- 【Hibernate 8】Hibernate的调优方法:抓取策略
在上一篇博客中,介绍了Hibernate的缓存机制.合理的配置缓存,可以极大程度上优化Hibernate的性能.这篇博客,介绍另外一个调优方式:抓取策略. 一.什么是抓取策略 抓取策略(fetchin ...
- Hibernate中的多表查询及抓取策略
1.Hibernate中的多表查询 1.1SQL中的多表查询 [交叉连接] select * from A,B; [内连接] 显示内连接:inner join(inner 可以省略) Select * ...
- Hibernate框架笔记04HQL_QBC查询详解_抓取策略优化机制
目录 1. Hibernate的查询方式 1.1 方式一:OID查询 1.2 方式二:对象导航查询 1.3 方式三:HQL方式 1.4 方式四:QBC查询 1.5 方式五:SQL查询 2. 环境搭建 ...
随机推荐
- Apache配置优化一(查看当前apache数据)
1.查看当前的运行模块 httpd -l 2.查看httpd进程数 ps -ef | grep httpd | wc -l 3.查看请求80服务的client ip按照连接数排序 netstat -n ...
- 【AI教育】可以看看行业痛点分析
http://www.woshipm.com/it/2801582.html 至于解决方案嘛,还在堆砌技术的阶段.
- MySQL复制表结构
示例SQL: create table testdb.test_table_back like testdb.test_table
- 使用httpwebrequest Post数据到网站
怎样通过HttpWebRequest 发送 POST 请求到一个网页服务器?例如编写个程序实现自动用户登录,自动提交表单数据到网站等.假如某个页面有个如下的表单(Form): <form nam ...
- mysql:服务无法启动解决
输入mysqld --console,查看报错 Found option without preceding group in config file E:\mysql-5.7.21-winx64\m ...
- sql-获取重复和删除重复数据
//获取相同用户名的数据 //删除相同的数据,保留最大的id或者最小的id min(id) delete from user where id not in(select max(id) from u ...
- SQL数据库基础语法
SQL语句的概述 SQL语言的分类 数据定义语言(Data Definition Language)主要用于修改.创建和删除数据库对象,其中包括CREATE ALTER DROP语句. 数据查询语 ...
- Postman和jmeter的区别
1.创建接口用例集(没区别) Postman是Collections,Jmeter是线程组,没什么区别. 2.步骤的实现(有区别) Postman和jmeter都是创建http请求 区别1:postm ...
- Django Simple Captcha的使用
Django Simple Captcha的使用 1.下载Django Simple Captcha django-simple-captcha官方文档地址 http://django-simple- ...
- redis源码解读--内存分配zmalloc
目录 主要函数 void *zmalloc(size_t size) void *zcalloc(size_t size) void zrealloc(void ptr, size_t size) v ...