一、延迟加载

* 在使用hibernate一些方法的查询数据的时候,返回的只是一个空对象(除id外属性都为NULL),并没有真正的查询数据库,而是在使用这个对象时才会触发查询数据库,并将这些数据注入到这个空对象中。这种将查询实际推迟到对象访问的机制就称为 延迟加载。

*好处: 可以提升内存资源的使用率,降低对数据库的访问次数。

*方法: session.load()   /  query.iterate()  / 关联映射中对关联属性的加载

*注意问题:避免在使用对象之前,提前关闭session

   -- 1.采用非延迟查询数据,如query.get().session.list()

   -- 2.使用对象后再关闭session

二、关联映射

   * 定义:如两张表具有关联关系,我们在实体对象和映射关系文件中配置这种关系,然后使用Hibernage操作其中一张表时,它可以通过配置关系自动帮我们操作到另一张表,这种通过配置自动操作另一张表的手段称为 关联映射。 

* 关联映射操作包括:

- 关联查询出关系表的数据

- 关联新增、修改关系表的数据

- 关联删除关系表的数据

* 关系映射的类型:

    1. 一对多关联:通过操作“一”来操作“多”,包括查询、新增、修改、删除。

*使用:

hbm映射文件配置:

2. 多对一关联

3. 多对多关联

4. 一对一关联

5. 继承关联

三、关联查询 抓取策略

* 由于2张表具有关联关系,实际上可以通过一个连接查询一次性取出2张表的数据,避免进行2次查询。 使用连接查询需要在映射文件中,关联属性标签上通过 fetch属性进行设置。

- fetch=“join”,表示在查询时使用连接查询,一起把对方的数据抓取过来,关联的延迟加载失效。(hibernate会生成 join 查询语句)

- fetch=“select”,表示在查询时不使用连接查询,是默认的情况(hibernate会延迟加载关联表)

四、级联操作

* 定义:通过关联映射,在对一方进行增、删、改时,连带关联的另一方的数据。这种操作称之为级联操作。

* 级联操作设置:映射文件中,关联的字段属性上设置如下几种:

-- 添加/修改:添加 cascade =“save-update”

--  删除:cascade=“delete”

-- 增、删、改 一起:cascade=“all”

级联删除:

   

HIbernate学习笔记4 之 延迟加载和 关联映射的更多相关文章

  1. Hibernate学习笔记(二)

    2016/4/22 23:19:44 Hibernate学习笔记(二) 1.1 Hibernate的持久化类状态 1.1.1 Hibernate的持久化类状态 持久化:就是一个实体类与数据库表建立了映 ...

  2. Hibernate学习笔记(一)

    2016/4/18 19:58:58 Hibernate学习笔记(一) 1.Hibernate框架的概述: 就是一个持久层的ORM框架. ORM:对象关系映射.将Java中实体对象与关系型数据库中表建 ...

  3. Hibernate 学习笔记一

    Hibernate 学习笔记一 今天学习了hibernate的一点入门知识,主要是配置domain对象和表的关系映射,hibernate的一些常用的配置,以及对应的一个向数据库插入数据的小例子.期间碰 ...

  4. Hibernate学习笔记-Hibernate HQL查询

    Session是持久层操作的基础,相当于JDBC中的Connection,通过Session会话来保存.更新.查找数据.session是Hibernate运作的中心,对象的生命周期.事务的管理.数据库 ...

  5. 一口一口吃掉Hibernate(五)——一对多单向关联映射

    版权声明:本文为博主原创文章,未经博主允许不得转载.如需转载请声明:[转自 http://blog.csdn.net/xiaoxian8023 ] 在上一篇博客<一口一口吃掉Hibernate( ...

  6. Hibernate学习笔记(四)关系映射之一对一关联映射

    一. 一对一关联映射 ²        两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²        有两种策略可以实现一对一的关联映射 Ø        主键关联:即让 ...

  7. Hibernate学习笔记

    一.Hibernate基础 1.Hibernate简介 Hibernate是一种对象关系映射(ORM)框架,是实现持久化存储的一种解决方案.Java包括Java类到数据库表的映射和数据查询及获取的方法 ...

  8. Hibernate 学习笔记 - 2

    五.映射一对多关联关系 1. 单向多对一 即 单向 n-1 1)单向 n-1 关联只需从 n 的一端可以访问 1 的一端 ① 域模型: 从 Order 到 Customer 的多对一单向关联需要在Or ...

  9. HIbernate学习笔记(七) hibernate中的集合映射和继承映射

    九.       集合映射 1. Set 2. List a)        @OrderBy 注意:List与Set注解是一样的,就是把Set更改为List就可以了 private List< ...

随机推荐

  1. bzoj 1103: [POI2007]大都市meg (dfs序)

    dfs序,加个bit维护前缀和就行了 type arr=record toward,next:longint; end; const maxn=; var edge:..maxn]of arr; bi ...

  2. Html CSS学习(五)position定位 原

    Html CSS学习(五)position定位 position用来对元素进行定位,其值有以下几种: static:无特殊定位,对象遵循正常文档流,top,right,bottom,left等属性不会 ...

  3. POJ2942:Knights of the Round Table——题解

    http://poj.org/problem?id=2942 所写的tarjan练习题最难的一道. 说白了难在考得不是纯tarjan. 首先我们把仇恨关系处理成非仇恨关系的图,然后找双连通分量,在双连 ...

  4. BZOJ4571:[SCOI2016]美味——题解

    https://www.lydsy.com/JudgeOnline/problem.php?id=4571 https://www.luogu.org/problemnew/show/P3293 一家 ...

  5. ASP.NET基础学习(暴力破解密码)

    首先写出一段登陆程序: //ashx端 <%@ WebHandler Language="C#" Class="AddCalation" %> us ...

  6. Generating Sets 贪心

    H - Generating Sets Time Limit:2000MS     Memory Limit:262144KB     64bit IO Format:%I64d & %I64 ...

  7. 人工智能----TensorFlow开篇简介

    Artificial Intelligence,也就是人工智能.TensorFlow是Google在2015年底开源的项目 TensorFlow的论文地址:http://download.tensor ...

  8. javascript如何判断对象为空

    1.自定义jQuery的isEmptyObject()方法. function isEmptyObject(e) { var t; for (t in e) return !1; return !0 ...

  9. 基于http的追加协议、构建web内容的技术、web的攻击技术(9,10,11)

    第九章 基于http的追加协议 用来提升http的瓶颈,比如Ajax技术,spdy等 第十章 构建web内容的技术 html.css.js等 第十一章 web的攻击技术 比如sql注入攻击.xss等.

  10. 2015/9/1 Python基础(6):列表

    列表和字符串类型很相似,是同样的序列式数据类型.但是字符串只能由字符组成,列表可以保留任意数目的Python对象的灵活的容器.Python的列表比C的数组要灵活,数组里面只能是一种类型,列表可以有多种 ...