zoukankan      html  css  js  c++  java
  • HIbernate学习笔记4 之 延迟加载和 关联映射

    一、延迟加载

         * 在使用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”

             

            

           级联删除:

          

           

       

  • 相关阅读:
    为sublime text2 添加SASS语法高亮
    下拉框点链接js
    [JavaScript] 初中级Javascript程序员必修学习目录
    判断页数及切换
    切换加上延迟加载js代码
    jquery 简单弹出层(转)
    左右滑动删除ListView条目Item--第三方开源--SwipeToDismiss
    使用自定义的item、Adapter和AsyncTask、第三方开源框架PullToRefresh联合使用实现自定义的下拉列表(从网络加载图片显示在item中的ImageView)
    从一个URL下载原始数据,基于byte字节,得到byte数组
    动画气泡指示当前滑动值--第三方开源--DiscreteSeekbar
  • 原文地址:https://www.cnblogs.com/GotoJava/p/6715236.html
Copyright © 2011-2022 走看看