缓存分为2个级别,session和sessionFactory。session缓存默认总是开启的,当应用保存,修改持久化实体时,不会立即将改变flush到数据库中,而是还存在session的一级缓存中,除非session关闭,或显示的调用session.flush()方法。 sessionFactory是全局性的,所有的session都可以共享二级缓存,二级缓存默认时关闭的,当开启时,session抓取数据是,会先从二级缓存中抓取。 这就是二级缓存的优点,它可以减少访问数据库的次数,从而提高web应用的性能。下面来看下开启hibernate 二级缓存所需要做的工作。(我用的是ehcache) 首先必要的jar包 ehcache-1.2.3.jar commons-logging-1.0.4.jar。 在hibernate.cfg.xml配置文件中加上 <!-- lang: xml --> <property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property> <property name="cache.use_second_level_cache">true</property> 然后在你的映射文件上
转载于:https://my.oschina.net/u/255939/blog/404316