hibernate 二级缓存
2016-01-20 18:54
288 查看
二级缓存 可以跨session共享,
同一个sessionFactory内多个session共享。
<!-- 指定二级缓存策略为EHCache -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- 指定启用查询缓存 -->
<property name="hibernate.cache.use_query_cache">true</property>
一级缓存和二级缓存
一级缓存 : Session级别的缓存,默认启用
二级缓存 : SessionFactory级别的缓存,默认未启用.
启用二级缓存方法:
(1)在hiberante.cfg.xml中指定二级缓存策略,默认使用EHCache
(2)引入EHCache的配置文件,从开发包的etc目录下寻找
(3)在hbm.xml的<class>元素下使用<cache>元素指定该类型对象采用二级缓存存储.
启用查询缓存方法:
(1)在hiberante.cfg.xml中指定启用查询缓存
hibernate.cache.use_query_cache true
(2)在执行query.list()方法之前,调用query.setCacheable(true).指定该查询启用查询缓存.
如何清除缓存中的对象
session.evict();
sessionFactory.evict();
sessionFactory.evictCollection();
3.批量更新,插入操作,批量删除(HQL)
参考使用文档第13章批量操作
同一个sessionFactory内多个session共享。
<!-- 指定二级缓存策略为EHCache -->
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
<!-- 指定启用查询缓存 -->
<property name="hibernate.cache.use_query_cache">true</property>
一级缓存和二级缓存
一级缓存 : Session级别的缓存,默认启用
二级缓存 : SessionFactory级别的缓存,默认未启用.
启用二级缓存方法:
(1)在hiberante.cfg.xml中指定二级缓存策略,默认使用EHCache
(2)引入EHCache的配置文件,从开发包的etc目录下寻找
(3)在hbm.xml的<class>元素下使用<cache>元素指定该类型对象采用二级缓存存储.
启用查询缓存方法:
(1)在hiberante.cfg.xml中指定启用查询缓存
hibernate.cache.use_query_cache true
(2)在执行query.list()方法之前,调用query.setCacheable(true).指定该查询启用查询缓存.
如何清除缓存中的对象
session.evict();
sessionFactory.evict();
sessionFactory.evictCollection();
3.批量更新,插入操作,批量删除(HQL)
参考使用文档第13章批量操作
批量插入(Batch inserts)
如果要将很多对象持久化,你必须通过经常的调用flush()以及稍后调用
clear()来控制第一级缓存的大小。
Session session = sessionFactory.openSession(); Transaction tx = session.beginTransaction(); for ( int i=0; i<100000; i++ ) { Customer customer = new Customer(.....); session.save(customer); if ( i % 20 == 0 ) { //20, same as the JDBC batch size //20,与JDBC批量设置相同 //flush a batch of inserts and release memory: //将本批插入的对象立即写入数据库并释放内存 session.flush(); session.clear(); } } tx.commit(); session.close();
相关文章推荐
- Android :我的奇怪BUG:WindowManager$BadTokenException
- Extjs4 的ComboBox select 事件(event)的例子(代码)
- Nginx+Tomcat负载均衡配置
- ns3根据五元组来查找端点列表,以及转送上层的处理流程
- html 异步调用
- Elasticsearch filter
- php 实现 redis 队列,等待有新消息入列
- CodeForces 176A Trading Business 贪心
- 18 JSP声明、脚本、表达式及JSP标签
- CSS中对图片(background)的一些设置心得总结
- ios富文本自适应
- extjs combobox 如何获取点击事件
- Spring的BeanUtils.copyProperties用法
- 给定坐标点,绘制轨迹
- 转载:阿里云服务器 ECS Ubuntu系统安装配置
- achartengine与Android中ScrollView的冲突问题
- 将外部sqlite3数据库导入到Android项目中(android studio)
- webdriver与浏览器_操作页面元素—单选按钮/多选按钮
- 记kkpager分页控件的使用
- android ios winform图标下载网站,手机图标下载