【问题标题】:Enabling Hibernate second-level cache with JPA on JBoss 4.2在 JBoss 4.2 上使用 JPA 启用 Hibernate 二级缓存
【发布时间】:2008-09-10 07:32:38
【问题描述】:

在使用 Java Persistence API(注解实体)时,启用 Hibernate 的二级缓存需要哪些步骤?我如何检查它是否正常工作?我正在使用 JBoss 4.2.2.GA。

从 Hibernate 文档看来,我需要启用缓存并在 persistence.xml 中指定缓存提供程序,例如:

<property name="hibernate.cache.use_second_level_cache"
          value="true" /> 
<property name="hibernate.cache.provider_class" 
          value="org.hibernate.cache.HashtableCacheProvider" /> 

还需要什么?我需要向我的 JPA 实体添加 @Cache 注释吗?

如何判断缓存是否正常工作?我曾尝试在运行查询后访问缓存统计信息,但 Statistics.getSecondLevelCacheStatistics 返回 null,可能是因为我不知道要使用什么“区域”名称。

【问题讨论】:

    标签: java hibernate jpa caching


    【解决方案1】:

    跟进:最后,在添加注释后,我让它与 EhCache 一起工作,即

    <property name="hibernate.cache.provider_class" 
              value="net.sf.ehcache.hibernate.EhCacheProvider" />
    

    【讨论】:

    • 请注意,在 Hibernate 3.3+ 中,这个参数现在是 hibernate.cache.region.factory_class 而不是上面的。为后代添加这个;)
    【解决方案2】:

    我相信你需要添加缓存注解来告诉hibernate如何使用二级缓存(只读、读写等)。我的应用程序就是这种情况(使用 spring/传统休眠和 ehcache,因此您的里程可能会有所不同)。一旦指定了缓存,我就开始从休眠中看到它们正在使用的消息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-06
      • 2017-03-31
      • 2015-10-13
      • 1970-01-01
      • 2013-11-23
      • 2013-11-24
      • 2010-11-29
      • 1970-01-01
      相关资源
      最近更新 更多