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值,值越大发送语句越少

最新文章

  1. 笔记本中的archlinux调节亮度
  2. 20145218&20145240 《信息安全系统设计基础》实验二 固件设计
  3. POI2012
  4. XMl各种格式转换功能代码
  5. JAVA设计模式——单例模式
  6. 安装xampp无法设置默认时间的坑
  7. Circle(codevs 3134)
  8. CnPlugin 1.5.400
  9. Spring事务管理中@Transactional
  10. hdoj 1201 18岁生日
  11. JavaScript键盘事件全面控制代码
  12. 数据挖掘算法学习(三)NaiveBayes算法
  13. nodeValue的兼容问题
  14. 整合最优雅SSM框架:SpringMVC + Spring + MyBatis
  15. [2012-04-25]shell大括号参数扩展(Parameter Expansion)
  16. Linxu指令--crond
  17. Angular 学习笔记 (路由外传 - RouteReuseStrategy)
  18. jQuery中的动画方法
  19. Spring 开发常见问题
  20. Linux中编写Bash脚本的10个技巧

热门文章

  1. ISO镜像安装UbuntuKylin 13.04 64位,启动菜单制作实例
  2. Yii::记录日志到自定义文件
  3. HTML5 学习笔记 表单属性
  4. C#:SqlServer操作的知识点
  5. Python图像处理(14):神经网络分类器
  6. Js动态添加复选框Checkbox
  7. 回文串dp
  8. python右键不显示IDLE
  9. 基于jQuery实现文字倾斜显示代码
  10. 基于HTML5 Canvas 实现的 Loading 效果