Hibernate_缓存技术,一,二,三级
1???????? a)???????? listb)???????? iterate先取 ID,等用到的时候再根据ID来取对象
c)???????? session中list第二次发出,仍会到数据库査询
d)???????? iterate 第二次,首先找session 级缓存
2???????? 一级缓存和二级缓存和査询缓存(面试题)(详见hibernate_3000_Hibernate_3KindsOf_Cache)
a)???????? 什么是缓存
b)???????? 什么是一级缓存,session级别的缓存
c)???????? I什么是二级缓存,SessionFactory级别的缓存,可以跨越session存在
????????????????????? i.??????? 经常被访间
????????????????? ii.??????? 改动不大不会经常改动
?????????????? iii.??????? 数重有限
d)???????? 打开二级缓存
<property
name= "cache.use_second_level_cache">true</property>
<property
name="cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
e)???????? f)???????? g)???????? 如果要query用二级缓存,需打开查询缓存
<property name="cache.use_query_cache">true</property>
调用Query的setCachable (true)方法指明使用二级缓存
例如:session.createQuery("from Category").setCacheable(true).list();
h)???????? 缓存算法:(纯为了面试)
????????????????????? i.??????? LRU? LFU ?FIFO
1.???????????? Least Recently Used –最近很少被使用
2.???????????? Least Frequently Used3.???????????? First In First Out 按顺序替换
????????????????? ii.??????? memoryStoreEvictionPolicy = "LRU" (ehcache.xml中配置)