码迷,mamicode.com
首页 > 其他好文 > 详细

8.性能的优化

时间:2015-06-28 21:34:10      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

1、session.clear()的运用,尤其在不断分页循环的时候

2、1+N问题:
@ManyToOne(fetch=FetchType.LAZY)  //设置成fetch=FetchType.LAZY并不是不发另外的N条sql语句,而是按需而发,需要用到的时候才发

 

3、Hibernate的一级缓存、二级缓存和查询缓存问题:
一级缓存:session级别的缓存(session私有的,不能跨session共享,默认就是session缓存)
二级缓存:可以理解为sessionFactory级别的缓存(所有session共享的缓存,可以跨session使用,在hibernate配置文件中设置。如果要将某个类的对象加入到二级缓存,可以在该类上加上@Cache(usage=CacheConcurrencyStrategy.Read_Write)注解)
打开二级缓存:在hibernate配置文件中添加配置
<property name="cache.use_second_level_cache">true</property>
<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

load默认使用二级缓存数据,iterate默认使用二级缓存
list默认往二级缓存加数据,但是查询的时候不使用

如果query要使用二级缓存,需要打开查询缓存(查询缓存依赖于二级缓存,如果二级缓存没有打开,无法使用查询缓存)
设置查询缓存:
1.在hibernate配置文件中加入<property name="cache.use_query_cache">true</property>
2.在程序中加入Query.setCacheable(true)

8.性能的优化

标签:

原文地址:http://www.cnblogs.com/cbirdq/p/4606019.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!