Hibernate_优化与事务

来源:互联网 发布:淘宝店怎么设置包邮 编辑:程序博客网 时间:2024/06/06 04:18

      • 延迟加载
        • 实体级别的延迟加载
        • 集合关联属性的延迟加载
      • 抓取策略
      • 缓存机制
      • 事务简介
      • 乐观锁与悲观锁


延迟加载

  1. 什么是延迟加载?
    延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。
  2. Hibernate中对如下内容提供了延迟加载策略
    • 实体对象的延迟加载
      < class >标签中定义lazy属性:true和false可选
    • 集合类型的延迟加载
      < set >、< list >集合属性中定义lazy属性:true、false和extra可选
    • 单端延迟加载
      < many-to-one >和< one-to-one >定义lazy属性:false、proxy和noproxy
    • 普通属性延迟加载
      < property >定义lazy属性:false和true可选,但是需要类增强

实体级别的延迟加载

  • 实体级别的延迟加载需在映射文件的中进行配置lazy属性
<!-- 配置实体级别的延迟加载 --><class name="Employee" table="emp" lazy="true">
  • 实体级别的延迟加载lazy属性值有true和false可选,默认值true
  • 通过代理(javassit)机制Hibernate实现了实体级别的延迟加载
  • 实体级别的延迟加载只对Session的load()方法有效,当lazy为true时,执行load()方 - 法会延迟加载对应的实体对象,只有访问实体对象的非主键属性时才执行SQL查询语句,从数据库中获取对应的数据。
@Testpublic void testClassLazyTrue(){    Employee emp = (Employee) session.load(Employee.class,9000);    //获取非主键属性时,会从一级缓存获取该实体,如果缓存中无该对象,则发送SQL进行查询    System.out.println(emp.getEname());}

集合关联属性的延迟加载

  1. 集合关联属性的延迟加载
    1. 在Hibernate的延迟加载机制中,针对集合类型的应用,意义是最为重大
    2. 集合关联属性的延迟加载可以大大使Hibernate性能得到的提高
    3. 为实现集合的延迟加载Hibernate提供JDK中集合框架的独立实现,例如在一对多的关联关系中使用Set集合并不是JDK中的HashSet类型,而是Hibernate独立实现的PersistentSet。
    4. 通过使用自定义集合类的实现,Hibernate实现了集合类型的延迟加载。
  2. 集合关联属性延迟加载配置
未完待续

抓取策略


缓存机制


事务简介


乐观锁与悲观锁

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 华为荣耀8手机音量小怎么办 无法激活触控id怎么办 魅蓝2卡顿怎么办 小米max2玩王者荣耀卡怎么办 小米4玩王者荣耀卡怎么办 华为荣耀7i卡顿怎么办 华为荣耀7卡的怎么办 荣耀8手机有孤独怎么办 红米note4玩游戏卡怎么办 红米note4x玩游戏卡怎么办 华为4c死屏怎么办 华为4c充电很慢怎么办? 华为4c突然死机了怎么办 华为畅玩4c内存不足怎么办 荣耀4c一直亮屏怎么办 华为手机返回键失灵怎么办 荣耀6p死机了怎么办 荣耀6主板烧坏了怎么办 虚拟运营商倒闭了号怎么办 买到二次放号怎么办 新运动鞋鞋穿着有点紧怎么办 一件代发被买家退货后怎么办? 洗了翻毛的鞋子怎么办 猫眼竹芋泡根了怎么办 双线花叶子卷了怎么办 华为云收藏满了怎么办 小米6云空间满了怎么办 华为云存储已满怎么办 苹果云备份空间不足怎么办 oppor9指纹与密码忘记怎么办 oppo显示密码格式不对怎么办 oppo云服务密码忘了怎么办 小米云内存满了怎么办 id储存空间满了怎么办 苹果手机邮箱服务器连接失败怎么办 苹果查看id闪退怎么办 域名卖出去后涉及赌博怎么办 发票认证后对方作废了怎么办 手机在屋里没信号怎么办 百度云上传文件和谐怎么办 收货地址写错了怎么办