Hibernate检索策略
Hibernate检索策略
类级别的检索策略:
首先要明确的是类级别的懒加载是针对session对象的load方法的,对get方法根本就没有意义。类级别的检索策略就是在class上添加lazy属性即:lazy=”true/false”
lazy=”true”,那么load()方法就可以使用懒加载
lazy=”false”,那么load()方法就不能使用懒加载了,只能使用立即检索。
备注:懒加载要注意一个问题就是谨防出现懒加载异常。
Set集合属性的检索策略:(lazy、fetch、batch-size)
set集合下面也有lazy属性。(true/false/extra) 通常使用true即默认懒加载开启
set集合下面的fetch属性。(join/select/subselect)默认使用的是join
join:表示的是迫切左外连接(即:使用左外链接进行查询, 且把集合属性进 行初始化)
select:表示自己手写sql外连接之类的
subselect:表示使用子查询(挺好的)作为 where 子句的 in 的条件出现 , 子查询查询所有 1 的一端的 ID。
set集合下面的batch-size: 作用: 一次初始化 1 的这一段代理对象的个数
举例:Student<——>Teacher双向关联
teacher下就有有一个set集合属性,如果lazy设置为true表示在检索teacher的时候它会使用懒加载机制(即不会立即把set集合下面的学生属性给查出来),犯之亦然。
使用检索策略的宗旨
不浪费内存(即:只拿我们想要的数据)和提高查询效率(即:尽量少发HQL语句)
懒加载机制就是为我们实现这个宗旨的手段和策略。
Hibernate检索策略相关推荐
- (九)Hibernate 检索策略
所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 这里的hibernate.cfg.xml配置信息我就不再写了 第一节:检 ...
- Hibernate学习(八)———— Hibernate检索策略(类级别,关联级别,批量检索)详解...
序言 很多看起来很难的东西其实并不难,关键是看自己是否花费了时间和精力去看,如果一个东西你能看得懂,同样的,别人也能看得懂,体现不出和别人的差距,所以当你觉得自己看了很多书或者学了很多东西的时候,你要 ...
- Hibernate检索策略之5.4一对多单向关联检索策略——Hibernate4究竟怎么玩
今天开始讲一对多单向关联. 转载于:https://www.cnblogs.com/geyifan/archive/2012/09/13/2682669.html
- hibernate 插入 效率_Hibernate:检索策略的学习1
概述 检索数据,也就是查询数据是在一个系统中必不可少的一个功能.检索数据时的2个问题: 不浪费内存:例如,Customer和Order是双向1-N的关系.当 Hibernate 从数据库中加载 Cus ...
- Hibernate之检索策略
1.概述 检索数据时的2个问题: 不浪费内存:当Hibernate从数据库中加载Customer对象时,如果同时加载所有关联的Order对象,而程序仅仅需要访问Customer对象,那么关联的Orde ...
- Hibernate框架--学习笔记(下):hibernate的查询方式、多表查询、检索策略、批量抓取
一.hibernate的查询方式: 主要有五种:对象导航查询:OID查询:hql查询:QBC查询:本地sql查询. 1.对象导航查询:根据id查询某个客户,再查询这个客户里面所有的联系人. 2.OID ...
- Hibernate的检索策略
Hibernate的Session在加载一个Java对象时,可以将与这个对象相关联的其他Java对象都加载到缓存中,以便程序及时调用.但有些情况下,我们不需要加载太多无用的对象到缓存中,一来这样会撑爆 ...
- 10、Hibernate的对象检索策略
- 立即检索策略 - 延迟检索策略 - 左外连接检索策略 - 每种检索策略的适用范围 - 在程序中显式指定左外连接检索策略 表字段之间的对应关系 1.运行Session的方法 List custome ...
- Hibernate的三种检索策略
1 N+1问题 Hibernate的Session缓存中存放的是相互关联的对象图,默认情况下,当从数据库中加载一个对象的时候,会同时加载它所关联的其他对象.例如:Clazz(班级)跟Student(学 ...
- Hibernate检索1
Hibernate 的关联关系,通过关联关系能够对数据库表进行简单的操作.在大多数应用中,查询属于最重要的部分,而目前我们只能使用get方法和 load方法进行简单的查询,本章将主要讲解Hiberna ...
最新文章
- python给图片添加字符
- replugin源码解析之replugin-plugin-gradle(插件的gradle插件)
- python读取math_怎么使用python安装math库?怎么用?
- linux安装mongodb(设置非root用户和开机启动)
- wacom mac驱动_MAC系统装Wacom手绘板的方法及注意事项
- 在C#中使用Google翻译API
- Microsoft.System.Center.Operations.Manager.2007 中文版完整光盘下载地址
- 前端重构实践(一) —— 性能优化
- 再这样下去,团队半年内就要散了。。
- C++使用Socks5协议进行代理上网(二)
- [Java]一个WiFi管理器(获取WiFi连接的网关的ip和信息)和热点管理器(获取连接本机的热点的设备的ip、MAC和信息)
- How to do Mathematics
- 【ACM】kuangbin基础数论专题
- EntityFramworkCore 配置种子数据(seeding data)
- 在面试中如何回答面试官的问题
- 卡迪夫大学计算机和信息技术管理研究方向,卡迪夫大学研究生GPA要求
- 在MATLAB上运行Python示例
- MySQL复制表结构表数据
- Dell_Inspiron_15-3567, 加装内存条, 更换固态硬盘
- 海苔和紫菜有什么区别?
热门文章
- 关于纯流量卡-物联网卡的一点个人看法
- 江湖高手专用的“隐身术”:图片隐写技术
- Unknown host 'dl.google.com'. You may need to adjust the proxy settings in Gradle.
- 720yun全景图+vue
- find函数的使用方法Matlab,matlab中find函数的使用说明——emily语法介绍
- 【防火墙流控配置 基于主机的带宽控制】
- java模拟选课_模拟学生选课系统的练习
- zlib访问方法(2022-11-16)
- helm charts 入门指南
- 泰坦尼克号——完美主义的杰作