出现问题:
org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache]
很多的时候,很多的人都会出现这个问题!
有两个原因:
1,没有配cache的jar包(从hibernate官方文档的例题中获取)。
2,在配置文件中配置出错.
在hibernate.cfg.xml中配置为
<property name="cache.use_second_level_cache">true</property><property name="cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</property>
<property name="cache.use_query_cache">true</property>
在application.xml中配置为
<prop key="hibernate.cache.use_second_level_cache">true</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
注意!在上面两个配置是不一样的,配置其中一个文件即可。
解释说明:
因为在Hibernate的bean的hbm配置文件中配置了缓存,而在hibernate的配置中没有配置提供的缓存机制的属性,在hibernate的早起版本中默认是提供ehcache的,但是在最近的版本中已经不提供默认配置了。所以必须自己手工配置。