缓存是Hibernate中的一种机制 分为一级缓存和二级缓存 作用是访问的时候先去内存中看看有没有缓存的数据 如果有就不用对数据库进行操作
一级缓存 和session一样的级别的缓存 生命周期与session一致 是指的Session的一系列Java集合构成的
当使用Session接口中的Save(),update(),saveOrUpdate()、get()等方法时会自动存入缓存中
当使用Session接口中的load、get()方法以及Query接口的list iterator 方法的时候会自动去判断缓存中是否存在该对象,有则返回、没有则再去查询数据库。
快照区:
当使用id查询数据库的时候,被查询的结果放在session一级缓存中,同时复制一份在快照区
使用commit提交的时候清除session的一级缓存,清除的时候会比对快照区和缓存中的对象是不是一致如果是不一致那就更新数据确保一样