一级缓存:Session级别的缓存.一级缓存与session的生命周期一致.自带的.不可卸载.
二级缓存:SessionFactory级别的缓存.不是自带的.需要手动开启。
向一级缓存存入数据的时候,放入一级缓存区和一级缓存快照区,当更新了一级缓存的数据的时候,事务一旦提交,比对一级缓存和快照区,如果数据一致,不更新,如果数据不一致,自动更新数据库.
Hibernate管理一级缓存:
1、clear() :清空一级缓存中所有的对象.
2、evict(Object obj) : 清空一级缓存中某个对象.
3、flush() :刷出缓存.
4、refresh(Object obj):将快照区的数据重新覆盖了一级缓存的数据.
5、save(): 可以向一级缓存中存放数据
Hibernate适合放入二级缓存中数据
1、很少被修改
2、不是很重要的数据,允许出现偶尔的并发问题