grails 3(spring-boot) - 如何配置hibernate二级缓存
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了grails 3(spring-boot) - 如何配置hibernate二级缓存相关的知识,希望对你有一定的参考价值。
当尝试使用ehcache作为休眠二级缓存时,我得到以下异常:org.hibernate.cache.NoCacheRegionFactoryAvailableException:在应用程序中使用二级缓存,但是没有给出属性hibernate.cache.region.factory_class
我试着在application.yml中配置它:
spring:
jpa:
properties:
hibernate:
cache:
region:
factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
和:
grails:
hibernate:
cache:
use_second_level_cache: true
provider_class: net.sf.ehcache.hibernate.EhCacheProvider
region:
factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
但这些似乎都没有帮助。
答案
如果你删除grails
顶级配置,后者应该工作,因为Grails寻找'hibernate.blah'而不是'grails.hibernate.blah':
hibernate:
cache:
use_second_level_cache: true
provider_class: net.sf.ehcache.hibernate.EhCacheProvider
region:
factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
另一答案
你应该在grails
之前删除hibernate
。 Grails期望区域的结构在缓存之下。
记住选项卡在yml文件中很重要
所以代码应该是这样的:
hibernate:
cache:
queries: false
use_second_level_cache: true
use_query_cache: false
region:
factory_class: 'org.hibernate.cache.ehcache.EhCacheRegionFactory'
另一答案
这是一个迟到的答案,但可能会帮助将来的某个人。
尝试在pom.xml中添加此依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>5.2.2.Final</version>
</dependency>
然后在application.yml中:
spring:
jpa:
properties:
hibernate.cache.use_second_level_cache: true
hibernate.cache.region.factory_class: org.hibernate.cache.ehcache.EhCacheRegionFactory
以上是关于grails 3(spring-boot) - 如何配置hibernate二级缓存的主要内容,如果未能解决你的问题,请参考以下文章