hibernate 缓存

来源:互联网 发布:珍宝岛事件 知乎 编辑:程序博客网 时间:2024/04/29 14:30
 

1,一级缓存只缓存实例对象
2,一级缓存是和session绑定的,是和session的生命周期是一致的。session间不同共享一级缓存中的数据。
3,一级缓存无法取消,但可以管理,如:session.clear,session.evict
4,下列方法支持一级缓存
a,get()
b,load
c,iterator(查询实例对象)
5,如何避免一次性大量实例对象数据入库导致内存溢出
 *先flush,在clear
如果数据量特别大,考虑采用jdbc实现,如果jdbc也不能满足要求可以考虑采用数据库本身的特定导入工具。


1,二级缓存也称进程级的缓存或SessionFactory级的缓存,二级缓存可以被所有的session共享。
二级缓存的生命周期和SessionFactory的生命周期一致,SessionFactory可以管理二级缓存

2,二级缓存的配置和使用
 *将echcache.xml文件拷贝到src下
 *在hibernate配置文件中开启二级缓存
 *指定缓存产品
 *指定哪些实体类使用二级缓存(两种方法)  
  *在映射文件中采用<cache>标签
  *在hibernate.cfg.xml文件中采用<class-cache>标签

3,二级缓存是缓存实体对象

4,一级缓存和二级缓存的交互


hibernate的查询缓存
1,查询缓存是针对普通属性结果集的缓存。对实体对象的结果集只缓存id
2,查询缓存的生命周期,当前关联的表发生修改,那么查询缓存的生命周期结束
3,查询缓存只对query.list()起作用,query.iterator不起作用。也就是说它不适用查询缓存

原创粉丝点击