目录

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

27.Hibernate-缓存和懒加载.md的更多相关文章

  1. Hibernate缓存和懒加载的坑你知道多少?这5个简单问题回答不上来就不敢说会用hibernate

    问题1:session.flush()调用之后,懒加载还生效吗? 如果不生效,那是抛异常还是没有任何反应,或者直接返回null? 答案:生效.可以理解为在同一个session当中,懒加载只会执行一次. ...

  2. 解决hibernate中的懒加载(延迟加载)问题

    解决hibernate中的懒加载(延迟加载)问题   我们在开发的时候经常会遇到延迟加载问题,在实体映射时,多对一和多对多中,多的一样的属性默认是lazy="true"(即,默认是 ...

  3. Hibernate中的一级缓存、二级缓存和懒加载(转)

    1.为什么使用缓存 hibernate使用缓存减少对数据库的访问次数,从而提升hibernate的执行效率.hibernate中有两种类型的缓存:一级缓存和二级缓存. 2.一级缓存 Hibenate中 ...

  4. Hibernate中的一级缓存、二级缓存和懒加载

    1.为什么使用缓存 hibernate使用缓存减少对数据库的访问次数,从而提升hibernate的执行效率.hibernate中有两种类型的缓存:一级缓存和二级缓存. 2.一级缓存 Hibenate中 ...

  5. Hibernate一级缓存之懒加载问题

    Hibernate的懒加载: 当用到数据的时候才向数据库查询,这就是hibernate的懒加载特性. 目的,为提高程序执行效率. 查询操作:get()方法/load()方法 (1)get()方法,及时 ...

  6. mybatis和hibernate中的懒加载

    概念:所谓懒加载就是延时加载,延迟加载.什么时候用懒加载呢,我只能回答要用懒加载的时候就用懒加载.至于为什么要用懒加载呢,就是当我们要访问的数据量过大时,明显用缓存不太合适,因为内存容量有限 ,为了减 ...

  7. hibernate JPA 使用懒加载时代理对象

    hibernate延迟加载代理对象实际对象读取方式 public static <T> T deproxy (T obj) { if (obj == null) return obj; i ...

  8. hibernate 多对多 懒加载问题

    报错:org.hibernate.LazyInitializationException: failed to lazily initialize a collection of role: net. ...

  9. hibernate中的懒加载和急加载

    懒加载(FatchType.LAZY)是Hibernate为提高程序执行效率而提供的一种机制,简单说就是只有正真使用其属性的时候,数据库才会进行查询. 具体的执行过程就是:Hibernate从数据库获 ...

随机推荐

  1. win10 家庭版修改hosts的权限

    https://jingyan.baidu.com/article/624e7459b194f134e8ba5a8e.html

  2. apache kylin总结

    去年12月挖的坑,今天找时间填上.update:20190119 一.kylin架构 核心是预计算,在此架构上做了一些优化.计算结果存储在Hbase,对Hive等查询转换为Hbase的Scan,提高速 ...

  3. Python学习之路基础篇--01Python的基本常识

    1 计算机基础 首先认识什么是CPU(Central Processing Unit),即中央处理器,相当于人类的大脑.内存,临时储存数据,断电即消失.硬盘,可以长久的储存数据,有固态硬盘,机械硬盘之 ...

  4. ubuntu 16 阿里云 vsftpd

    1.安装 apt-get install vsftpd 2.配置 conf vim /etc/vsftpd.conf --禁止匿名用户sed -i "s/anonymous_enable=Y ...

  5. if 循环

    age_of_princal = 56guess_age = int(input(">>:")) if guess_age == age_of_princal: pri ...

  6. 用turtle画图

    turtle是python自带一个寓教于乐的小乌龟,可以控制乌龟移动(机器人),可以留下足迹. turtledemo里有许多官方例子.刚才随性而发做,看了介绍随手画了一个,有点像自动原包机,通过简单的 ...

  7. Excel函数之rank应用

    该函数的功能就是对现有数据指标进行排名 示例:对产品进行销售总额的排名 首先要知道排名需要用到rank函数 number参数就是你要进行排名的数据 ref参数就是该指标需要在哪个区域内进行比较定位排名 ...

  8. mysql 将行拼接成字符串的方法

    见代码: ;//保证可以拼接足够长的字符串,没它 数据量大时会截断结果1 group by videoType 效果如下:

  9. Verilog HDL中的运算符关系

    1,位运算符 按位运算的运算符是位运算符,原来的操作数有几位,结果就有几位,若两个操作数位数不同,则位数短的操作数左端会自动补0. (1),按位取反:~ (2),按位与:& (3),按位或:| ...

  10. mosquitto centos安装配置

    周末弄wordpress的Mysql,一不小心把wordpress弄不好了,写了的好几遍文章也没有了,一怒之下,把整个系统重装了,安装了不带任何软件的新系统,重新搭一遍. 0.安装ftp服务器 #yu ...