hibernate的一级缓存

 hibernate的一级缓存就是指Session缓存
(1)hibernate的一级缓存默认打开的
(2)hibernate的一级缓存使用范围,是session范围,从session创建到session关闭范围

(3)hibernate的一级缓存中,存储数据必须 持久态数据


验证一级缓存的存在

hibernate的一级缓存

第一步执行get方法之后,发送sql语句查询数据库

第二个执行get方法之后,没有发送sql语句,是直接从一级缓存里面查找内容,这样就省了很多时间。

Hibernate一级缓存执行过程:

hibernate的一级缓存

Hibernate一级缓存特性: 持久态自动更新数据库

hibernate的一级缓存

不需要用session的update方法就可以对数据库进行更新了。

持久态自动更新的过程:

在创建session的时候会出现一个一级缓存,同时也会产生一个快照区(副本),执行session.get方法时先在一级缓存区找有没有这个数据如果没有就去数据库查询,然后把持久态对象放到一级缓存和快照区,然后通过set*来修改持久态的值和一级缓存中的内容,但是不会修改快照区的内容,提交事物时进行比较,比较一级缓存区的内容和快照区的内容是否相同,不相同就把一级缓存中的内容更新到数据库,相同就不进行操作。

hibernate的一级缓存