实体类分为三种状态
1.瞬时态
这个状态和id没有联系同时和session没有关联,例如添加操作
2.持久态
这个和id有关联,例如查询操作,删除操作,都是先查询id值,说明已经存在数据库了
3.托管态
对象有id值,和session没有关联,例如我们通过新建对象的方式并利用setter方式修改对象
Hibernate的缓存机制
一级缓存机制
该机制有三个特点,分别是
1.默认打开
2.使用范围在session内,即session的创建到关闭过程
3.缓存中的数据必须是持久态的
验证一级缓存机制的存在
然后我们看底层sql语句的输出过程
我们可以看见只执行了一次sql查询就得到了两条记录。
一级缓存的执行过程
一级缓存的特性
持久态数据会自动更新(不用调用update方法)
执行原理如下图(图来自黑马程序员)
二级缓存机制
1.这个机制现在已经不适用了,给redis替代了
2.是默认不打开的,要配置才行
3.它的使用范围是sessionFactory内