如何在Hibernate 4.3中配置二级缓存

 蛮妞妞小公主切_292 发布于 2023-02-08 18:02

我已阅读与此相关的帖子,但没有得到任何答案为我工作.我配置second level cacheHibernate v4.3.,我已经使用MySQL 5.0

我写过以下内容 hibernate.cfg.xml

true
org.hibernate.cache.ehcache.EhCacheRegionFactory

我已经为缓存注释了我的Entity类,如下所示

@Entity 

@Cache(usage = CacheConcurrencyStrategy.READ_ONLY)
public class Employee { ....}

运行时会显示以下异常

INFO: HHH000397: Using ASTQueryTranslatorFactory
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.cache.spi.RegionFactory]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:233)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:197)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:178)
    at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:295)
    at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2442)
    at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2438)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1855)
    at com.example.hibernate.Hibernate4Main.main(Hibernate4Main.java:32)
Caused by: org.hibernate.HibernateException: could not instantiate RegionFactory [org.hibernate.cache.ehcache.EhCacheRegionFactory]
    at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:101)
    at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:46)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:83)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:223)
    ... 7 more
Caused by: org.hibernate.boot.registry.selector.spi.StrategySelectionException: Unable to resolve name [org.hibernate.cache.ehcache.EhCacheRegionFactory] as strategy [org.hibernate.cache.spi.RegionFactory]
    at org.hibernate.boot.registry.selector.internal.StrategySelectorImpl.selectStrategyImplementor(StrategySelectorImpl.java:128)
    at org.hibernate.cache.internal.RegionFactoryInitiator.initiateService(RegionFactoryInitiator.java:87)
    ... 10 more

我见过比有不同的缓存提供了Hibernate v3EhCacheProvoider.一切都在org.hibernate.cache包装中.但因为Hibernate 4.3只有3个类,RegionFactory.class而其他两个类exception.

1.上述代码有什么问题?

2. Hibernate 4.3中二级缓存配置的主要变化是什么?

1 个回答
  • 我为我的配置解决了这个问题.查看我项目的"有效pom"显示:

    <dependencyManagement>
      <dependencies>        
        ...
        <dependency>
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-ehcache</artifactId>
          <version>4.3.7.Final</version>
        </dependency>
        ...
      </dependencies>
    </dependencyManagement>
    

    以及我的大多数其他依赖项.

    将hibernate-ehcache依赖项复制到我的实际项目pom文件中,在<dependencyManagement/>标记之外添加了第二个条目,这解决了我的问题.我曾经想过,因为它已经包含在有效的pom中,我不需要添加它,但显然不是hibernate-ehcache的情况,因为它似乎适用于其他包.

    2023-02-08 18:04 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有