zoukankan      html  css  js  c++  java
  • 27.Hibernate-缓存和懒加载.md


    目录

    1.一级缓存

    • Hibernate中一级缓存是Session缓存,有效范围在Session中。作用是在Session范围内减少对数据库访问次数。当Session关闭时候缓存失效

    2.缓存的有效性

    操作缓存的方法有三种:

    • session.flush():刷新,让一级缓存和数据库同步
    • session.evict(args):清空一级缓存中的指定对象
    • session.clear():清空一级缓存中的所有对象

    3.list和iterator缓存的区别

    • list的执行会将数据放入缓存,但是不会从缓存读取数据
    • iterator的执行会将数据放入缓存,并且会从缓存读取数据

    4.懒加载

    在使用get和load读取数据时候两者有不同

    4.1get

    get是及时加载,执行语句时就向数据库发送语句

    4.2load

    • load是懒加载,在使用数据时候才向数据库发送语句:

      • true:打开懒加载

      • false:关闭懒加载

      • extra:在数据真正使用时候才加载,如果只是调用集合的size()或者isEmpty方法,则不查询

    • 懒加载的设置在类对象的hbm配置中,集合的属性配置:

    <set name="类对象" lazy="懒加载值">
    
    • 懒加载异常:关闭Session后懒加载会异常,解决方法有:
      • 先使用一下数据

      • 强迫代理对象初始化

    Hibernate.initialize(查询的类对象);  
    
    
    * 关闭懒加载
    
    * 使用数据后再关闭Session
  • 相关阅读:
    移动开发 Native APP、Hybrid APP和Web APP介绍
    urllib与urllib2的学习总结(python2.7.X)
    fiddler及postman讲解
    接口测试基础
    UiAutomator2.0 和1.x 的区别
    adb shell am instrument 命令详解
    GT问题记录
    HDU 2492 Ping pong (树状数组)
    CF 567C Geometric Progression
    CF 545E Paths and Trees
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512915.html
Copyright © 2011-2022 走看看