Hibernate_day04--HQL多表查询_Hibernate检索策略
HQL多表查询
Mysql里面多表查询
|
1 内连接 查的是两个表关联的数据
2 左外连接 查的是左边表所有数据,右边表关联数据
3 右外连接
|
HQL实现多表查询
|
Hql多表查询 (1)内连接 (2)左外连接 (3)右外连接 (4)迫切内连接 (5)迫切左外连接 |
HQL内连接
|
1 内连接查询hql语句写法:以客户和联系人为例 (1)from Customer c inner join c.setLinkMan
返回list,list里面每部分是数组形式
2 演示迫切内连接 (1)迫切内连接和内连接底层实现一样的 (2)区别:使用内连接返回list中每部分是数组,迫切内连接返回list每部分是对象 (3)hql语句写法 - from Customer c inner join fetch c.setLinkMan
|
HQL左外连接
|
1 左外连接hql语句: (1)from Customer c left outer join c.setLinkMan (2)迫切左外连接from Customer c left outer join fetch c.setLinkMan
2 左外连接返回list中每部分是数组,迫切左外连接返回list每部分是对象
1 右外连接hql语句: (1)from Customer c right outer join c.setLinkMan
|
Hibernate检索策略
检索策略的概念
|
1 hibernate检索策略分为两类: (1)立即查询:根据id查询,调用get方法,一调用get方法马上发送语句查询数据库
(2)延迟查询:根据id查询,还有load方法,调用load方法不会马上发送语句查询数据,只有得到对象里面的值时候才会发送语句查询数据库
2 延迟查询分成两类: (1)类级别延迟:根据id查询返回实体类对象,调用load方法不会马上发送语句 (2)关联级别延迟: - 查询某个客户,再查询这个客户的所有联系人,查询客户的所有联系人的过程是否需要延迟,这个过程称为关联级别延迟
|
关联级别延迟操作

|
1 在映射文件中进行配置实现 (1)根据客户得到所有的联系人,在客户映射文件中配置 2 在set标签上使用属性 (1)fetch:值select(默认) (2)lazy:值 - true:延迟(默认) - false:不延迟 - extra:极其延迟 true默认延时: get时发一条和用的时候发一条sql语句
False不延时: 执行get就发了两条sql语句
(1)调用get之后,发送两条sql语句
(2)极其懒惰,要什么值给什么值
|
批量抓取
|
1 查询所有的客户,返回list集合,遍历list集合,得到每个客户,得到每个客户的所有联系人
(1)上面操作代码,发送了多条sql语句 2 在客户的映射文件中,set标签配置 (1)batch-size值,值越大发送语句越少
|
Hibernate_day04--HQL多表查询_Hibernate检索策略的更多相关文章
- HQL多表查询
------------------siwuxie095 HQL 多表查询 以客户和联系人为例(一对多) 1.内连接 (1)hql 语句写法 from Customer c inner join c. ...
- Hibernate多表查询、查询优化策略(四)
多表HQL private static void innerJoin(){ //sql内连接 隐式内连接 select * from A,B where b.aid = a.id // 显示内连接 ...
- Hibernate hql 多表查询
String hql="select c from Col c ,UserRole role where c.id=role.columnId and c.id=? and role.use ...
- Hibernate HQL多表查询
1.内连接和迫切内连接 (1)内连接 HQL语句:from 实体类名 实体类别名 inner join 实体类别名.表示另一个表数据的集合名称 (2)迫切内连接 HQL语句:from 实体类名 实体类 ...
- Hibernate的HQL多表查询
HQL的内连接查询 对于HQL内链接查询,查询的是两张表的数据,这两张表的数据首先是保存在数组之中,然后在将每一个数组保存在List集合之中进行返回 代码片段: @Test // 内连接 public ...
- hql 多表查询
sql 单表/多表查询去除重复记录单表distinct多表group by select h from Hytxbz as h,Tgbzk as t where h.hytxbzid=t.hytxbz ...
- Hibernate查询以及优化策略04
一. HQL查询 1. HQL(hibernate query language)单表查询 1.1 准备项目 创建项目: hinernate-03-query 引入jar,同前一个项目 复制实体(订单 ...
- mysql中的回表查询与索引覆盖
了解一下MySQL中的回表查询与索引覆盖. 回表查询 要说回表查询,先要从InnoDB的索引实现说起.InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Sec ...
- [原创]java WEB学习笔记91:Hibernate学习之路-- -HQL 迫切左外连接,左外连接,迫切内连接,内连接,关联级别运行时的检索策略 比较。理论,在于理解
本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...
随机推荐
- js 多选选择删除数据
按了顶上的删除(多项删除) 单列复选框删除 js语句 <a href="javascript:delOne('${customer.id}')">删除</a> ...
- centos 配置 samba 与windows共享文件夹
yum install samba /etc/samba/smb.conf directory mask = 0777 ← 指定新建目录的属性(以下4行) force directory mode = ...
- 视频中的DTS与PTS的理解
原文地址:http://blog.itpub.net/30004768/viewspace-1338882/ DTS(解码时间戳)和PTS(显示时间戳)分别是解码器进行解码和显示帧时相对于SCR(系 ...
- python --循环对象
转自:http://www.cnblogs.com/vamei/archive/2012/07/09/2582499.html 这一讲的主要目的是为了大家在读Python程序的时候对循环对象有一个基本 ...
- XML相关转换
1.将DataTable转换成xml字符串 //将DataTable转换成xml字符串: public string ConvertDataTableToXml(DataTable dt) { Mem ...
- pandas contact 之后,若要用到index列,要记得用reset_index去处理index
# -*- coding: utf-8 -*- import pandas as pd import sys df1 = pd.DataFrame({ 'A': ['A0', 'A1', 'A2', ...
- Ubuntu安装deb软件包错误(依赖关系问题)解决
执行命令 sudo dpkg -i XXX.deb 返回依赖关系错误提示 执行 sudo apt-get -f install 这条命令将自动安装需要的依赖包. 再次执行命令 sudo dpkg -i ...
- mysql 导入导出数据库、数据表的方法
mysql 导入导出数据库.数据表的方法. Linux操作系统中,均在控制台下操作.1,导入数据库:前提:数据库和数据表要存在(已经被创建)(1)将数据表 test_user.sql 导入到test ...
- Atitit.部分错误 设计模式,异常处理框架atiPartErr 的总结
Atitit.部分错误 设计模式,异常处理框架atiPartErr 的总结 1. 流程图 1 2. Java 类关系结构图片 1 3. 错误信息结构 1 4. 调用 2 4.1. 收集错误信息 3 4 ...
- [svc]nginx优化25条
参考:




















