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
  • 相关阅读:
    SELECT SCREEN 整理2 转载
    SELECT SCREEN 整理1 转载
    ABAP面向对象 转载
    [OO]ABAP OO 语法--实例看 "="与"?=" 的区别[转]
    cl_salv_table
    sapui5 组件重用
    sapui5 使用common(其他工程)的i18n 文件
    sapui5 app之间迁移
    导航与路由10-17(渣翻完结)
    导航与路由1-9 (渣翻)
  • 原文地址:https://www.cnblogs.com/bugstar/p/8512915.html
Copyright © 2011-2022 走看看