当前位置: 首页 > 面试题库 >

休眠NoCacheRegionFactoryAvailableException

雷骁
2023-03-14
问题内容

我收到了一个我无法解释的奇怪的Hibernate异常。告诉我我正在使用二级缓存,但是没有在哪里hibernate.cfg.xml指定二级缓存。这是例外:

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).
    at org.hibernate.cache.internal.NoCachingRegionFactory.buildEntityRegion(NoCachingRegionFactory.java:69)
    at org.hibernate.internal.SessionFactoryImpl.<init>(SessionFactoryImpl.java:348)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1769)
    at net.me.myapp.common.dao.SessionFactoryProvider.newSessionFactory(SessionFactoryProvider.java:37)
    at net.me.myapp.common.dao.BaseDAO.doPersist(BaseDAO.java:28)
    at net.me.myapp.common.dao.WordDAO.deleteAllWords(WordDAO.java:36)
    at net.me.myapp.tools.dmapper.DictionaryMapper.run(DictionaryMapper.java:88)
    at net.me.myapp.tools.dmapper.DictionaryMapper.main(DictionaryMapper.java:56)

而我的hibernate.cfg.xml

<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- DataSource & Connection info. -->
        <property name="hibernate.dialect">org.hibernate.dialect.H2Dialect</property>
        <property name="hibernate.connection.driver.class">org.h2.Driver</property>
        <property name="hibernate.connection.url">jdbc:h2:file:/${MYAPP_HOME}/data/myapp</property>
        <property name="hibernate.connection.username">myapp</property>
        <property name="hibernate.connection.password">mypassword</property>
        <property name="hibernate.connection.pool_size">1</property>

        <!-- General Hibernate settings. -->
        <property name="show_sql">true</property>
        <property name="format_sql">true</property>
        <property name="use_sql_comments">true</property>

        <!-- DDL Mode. -->
        <property name="hbm2ddl.auto">validate</property>

        <!-- All our Hibernate mapping XML files. -->
        <mapping class="net.me.myapp.common.dto.WordDTO" />
    </session-factory>
</hibernate-configuration>

有什么想法会触发此异常吗?提前致谢!


问题答案:

Pau在hibernate.cfg.xml中写了hibernate.cache.region.factory_class:

唯一的例外是不言而喻的。您必须设置 hibernate.cache.region.factory_class
属性。例如,使用ehcache将添加以下行:

<property

name=”hibernate.cache.region.factory_class”>net.sf.ehcache.hibernate.EhCacheRegionFactory



 类似资料:
  • 问题内容: 我有一个hibernate映射,该映射一直工作到最近-尽管我确定这是我所做的某些更改的结果,但我似乎找不到它。 映射文件将字段定义为: 该类将该字段定义为: 运行此代码时,出现以下错误: 与此对应的数据库字段定义为: 我还有其他几个具有相似结构和定义的类,并且它们没有问题。但是,可能由于我最近所做的一些更改而导致,此特定映射将不再正常工作。 有什么建议么? 问题答案: 我不确定,但是您

  • 问题内容: 有人可以透视一下JPA和Hibernate之间的区别吗?还是将这些互补的概念一起使用? 问题答案: 大致来说,JPA是java社区的一个标准,这里是specs,它是由Hibernate家伙实现(并扩展)的(此处提供一些信息)。作为规范,您将不会直接使用JPA,而是使用JPA实现。 请注意,如果要使用hibernateJPA扩展,将破坏与其他JPA实现的兼容性(尽管有些人会说“为什么要使

  • 问题内容: 我有一个Spring和Hibernate3在生产中运行良好的应用程序。以下是Spring的applicationContext.xml中会话工厂的配置 生产正常。 现在,对于另一个项目,我们正在迁移到Hibernate4。我们使用org.springframework.orm.hibernate4。*包中的Hibernate 4的SessionFactory,TransacionMan

  • 问题内容: 这是我在堆栈上的第一个问题,请保持温柔:D 我正在尝试创建休眠的OneToMany关系。当我尝试从数据库中获取一些数据时,出现了StackOverflowError。但是,当我删除OneToMany部分时,一切正常。这是我的REST服务的一部分,目前它可以在VMware vFabric Server和MySQL DB上运行。 获取示例: MySQL脚本: 类: 错误: 编辑: 感谢@T

  • 问题内容: 我正在通过Hibernate Documentation遇到一个问题。这些与我们用于数据库的相同吗?它们有何不同? 我正在尝试一个简单的示例,并观察到当我使用session.load()方法本身时,hibernate状态正在命中数据库,而不是在加载对象上调用某些方法时,hibernate状态正在命中数据库。 我观察到hibernate在第2行本身命中了数据库,请告诉我为什么会这样发生?

  • 问题内容: 我正在使用JBoss Embedded 版本beta3.SP10,并且遇到了应该在某些Hibernate版本中修复的持久性错误。可悲的是,我不知道在我的JBoss Embedded中使用了什么版本的Hibernate,也找不到找到此信息的方法,它捆绑的文件中没有 类,也不包含MANIFEST。 我如何不使用就可以找到当前加载的Hibernate版本? 问题答案: 尝试这个, 在这里找到