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
  • 相关阅读:
    【Python教程】3道循环结构练习题
    python3中实现print不换行的方法
    零基础学Python:字典(Dictionary)详细教程
    TS错误提示
    v-slot的简单理解应用
    Typora使用方法简单整理
    Java基础系列(6)- 面向对象(中)
    monkey基础 (7)
    monkey基础 (6)
    monkey基础 (5)
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512915.html
Copyright © 2011-2022 走看看