码迷,mamicode.com
首页 > Web开发 > 详细

Hibernate学习笔记_缓存

时间:2014-12-08 21:14:50      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:style   blog   io   ar   color   os   使用   sp   strong   

一级缓存和二级缓存和査询缓存(面试题)                   

a)    什么是缓存

b)    什么是一级缓存,session级别的缓存

c)    什么是二级缓存,SessionFactory级别的缓存,可以跨越session存在

        i.   经常被访间

      ii.   改动不大不会经常改动

     iii.   数重有限

d)    打开二级缓存

      i.   hibernate.cfg.xml 设定:

<property name= "cache.use_second_level_cache">true</property>

<property name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>

        ii.   @Cache注解(由hibernate扩展提供)

@Cache(usage=CacheConcurrencyStrategy.READ_WRITE)

 

@Entity
//@BatchSize(size=5)
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
public class Category {
    private int id;
    private String name;
。。。。。。。。
}

 

注:使用EhCache二级缓存 需要导入ehcache-1.2.3.jar及commons-logging-1.0.4.jar包

e)    load默认使用二级缓存,iterate默认使用二级缓存

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

g)    如果要query用二级缓存,需打开查询缓存

<property name="cache.use_query_cache">true</property>

 

调用Query的setCachable (true)方法指明使用二级缓存

例如:session.createQuery("from Category").setCacheable(true).list();

@Test
    public void testQueryCache() {
        Session session = sf.openSession();
        session.beginTransaction();
        List<Category> categories = (List<Category>)session.createQuery("from Category")
                                    .setCacheable(true).list();
        
        
        
        session.getTransaction().commit();
        session.close();
        
        Session session2 = sf.openSession();
        session2.beginTransaction();
        List<Category> categories2 = (List<Category>)session2.createQuery("from Category")
        .setCacheable(true).list();
        
        session2.getTransaction().commit();
        session2.close();
    }

 

h)    缓存算法:(纯为了面试)

         i.   LRU  LFU  FIFO

    1. Least Recently Used –最近很少被使用
    2. Least Frequently Used (命中率高低)
    3. First In First Out 按顺序替换

      ii.   memoryStoreEvictionPolicy = "LRU" (ehcache.xml中配置)

 

Hibernate学习笔记_缓存

标签:style   blog   io   ar   color   os   使用   sp   strong   

原文地址:http://www.cnblogs.com/enjoy-life-clh/p/4151792.html

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