hibernate.cfg.xml
-------------------
hibernate 3.3配置二級緩存
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
-------------------
hibernate 3.3配置二級緩存
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
2016-10-18
hibernate.cfg.xml
-------------------
hibernate 4.0以后配置二級緩存
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
-------------------
hibernate 4.0以后配置二級緩存
<property name="hibernate.cache.use_second_level_cache">true</property>
<property name="hibernate.cache.region.factory_class">
org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
2016-10-18
query.list()和query.iterate()區別
1.返回的類型不同:
list()返回List;iterate()返回Iterate。
2.查詢策略不同:
list()直接發送sql語句,查詢數據庫;
iterate()發送sql語句,從數據庫取出id,然后先從緩存中根據id查找對應信息,
有就返回結果,沒有就根據id發送sql語句,查詢數據庫。
3.返回對象不同:
list()返回持久化實體類對象;
iterate()返回代理對象。
4.與緩存的關系不同:
list()只緩存,但不使用緩存(查詢緩存除外);
iterate()會使用緩存。
1.返回的類型不同:
list()返回List;iterate()返回Iterate。
2.查詢策略不同:
list()直接發送sql語句,查詢數據庫;
iterate()發送sql語句,從數據庫取出id,然后先從緩存中根據id查找對應信息,
有就返回結果,沒有就根據id發送sql語句,查詢數據庫。
3.返回對象不同:
list()返回持久化實體類對象;
iterate()返回代理對象。
4.與緩存的關系不同:
list()只緩存,但不使用緩存(查詢緩存除外);
iterate()會使用緩存。
2016-10-18
1.一級緩存 Session緩存 會話級緩存
2.一級緩存的生命周期和Session相同 Session銷毀一級緩存也就會銷毀
evict清空Session中的一級緩存
clear清空一級緩存中的容器的數據
3.一級緩存會對程序性能影響
相關方法 Query query=session.createQuery("hql語句");
query.list()不會使用到一級緩存
query.iterate()會使用到一級緩存
2.一級緩存的生命周期和Session相同 Session銷毀一級緩存也就會銷毀
evict清空Session中的一級緩存
clear清空一級緩存中的容器的數據
3.一級緩存會對程序性能影響
相關方法 Query query=session.createQuery("hql語句");
query.list()不會使用到一級緩存
query.iterate()會使用到一級緩存
2016-09-15
Session就是一級緩存,第一次去請求時發送一次hql語句將查詢的數據放到緩存中,當第二次時不會發送hql語句 先去一級緩存中的容器 map中去查到,如果沒有會再次去請求數據庫,如果存在直接返回,
使用不同的Session 查詢同一對象會多次查詢
使用不同的Session 查詢同一對象會多次查詢
2016-09-15