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