启动应用程序时出现以下错误,只有在域对象上添加@cache(usage=CacheConcurrencyStrategy.READ_WRITE)
注释时才会出现此异常。如果我只使用注释@Cacheable(true)
,则不会出现此错误。
org.hibernate.cache.NoCacheRegionFactoryAvailableException: Second-level cache is used in the application, but property hibernate.cache.region.factory_class is not given, please either disable second level cache or set correct region factory class name to property hibernate.cache.region.factory_class (and make sure the second level cache provider, hibernate-infinispan, for example, is available in the classpath).
如果只使用Cacheble,它能够找到工厂并使用@Cache
注释它是不是有可能?
persistence.xml
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.use_query_cache" value="true"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider"/>
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.ehcache.EhCacheRegionFactory"/>
我在JBoss EAP 6上使用Hibernate版本4.x JPA 2.1
答案 0 :(得分:4)
你可以尝试将它添加到你的班级。缓存(usage = CacheConcurrencyStrategy.READ_ONLY,region =“employee”)。
将区域名称更改为您在encache.xml中使用的名称