3.2.2.10. 用 Infinispan 替换 JPA/Hibernate 二级缓存


介绍

对于二级缓存(2LC)而言,JBoss Cache 已经被 Infinispan 所替代。这要求修改 persistence.xml 文件。其语法稍有不同,这取决于您使用 JPA 还是 Hibernate 二级缓存。下面的例子假设您在使用 Hibernate.。

这是 JBoss EAP 5.x 里用 persistence.xml 文件指定二级缓存属性的例子。
<property name="hibernate.cache.region.factory_class"
     value="org.hibernate.cache.jbc2.JndiMultiplexedJBossCacheRegionFactory"/>
<property name="hibernate.cache.region.jbc2.cachefactory" value="java:CacheManager"/>
<property name="hibernate.cache.use_second_level_cache" value="true"/>
<property name="hibernate.cache.region.jbc2.cfg.entity" value="mvcc-entity"/>
<property name="hibernate.cache.region_prefix" value="services"/>

Copy to Clipboard Toggle word wrap
下面的步骤将使用这个例子来配置 JBoss EAP 6 里的 Infinispan。

过程 3.16. 修改 persistence.xml 文件以使用 Infinispan

  1. 为 JBoss EAP 6 里的 JPA 应用程序配置 Infinispan

    这是如何用 JBoss EAP 6 里的 Infinispan 来指定属性以实现用于 JPA 应用程序的相同配置:
    <property name="hibernate.cache.use_second_level_cache" value="true"/>
    
    
    Copy to Clipboard Toggle word wrap
    此外,您需要指定一个值为 ENABLE_SELECTIVEALLshared-cache-mode
    • ENABLE_SELECTIVE 是默认的推荐值。它表示实体不会被缓存,除非您显性地将它标记为可缓存的。
      <shared-cache-mode>ENABLE_SELECTIVE</shared-cache-mode>
      
      
      Copy to Clipboard Toggle word wrap
    • ALL 表示实体总是被缓存,即使您将其标记为不可缓存的。
      <shared-cache-mode>ALL</shared-cache-mode>
      
      
      Copy to Clipboard Toggle word wrap
  2. 为 JBoss EAP 6 里的原生 Hibernate 应用程序配置 Infinispan

    这是如何用 JBoss EAP 6 里的 Infinispan 来指定用于原生 Hibernate 应用程序的相同配置:
    <property name="hibernate.cache.region.factory_class"
         value="org.jboss.as.jpa.hibernate4.infinispan.InfinispanRegionFactory"/>
    <property name="hibernate.cache.infinispan.cachemanager"
         value="java:jboss/infinispan/container/hibernate"/>     
    <property name="hibernate.transaction.manager_lookup_class"
         value="org.hibernate.transaction.JBossTransactionManagerLookup"/>
    <property name="hibernate.cache.use_second_level_cache" value="true"/>
    
    
    
    Copy to Clipboard Toggle word wrap
    您也必须将下列依赖关系添加至 MANIFEST.MF 文件:
    Manifest-Version: 1.0
    Dependencies: org.infinispan, org.hibernate
    
    Copy to Clipboard Toggle word wrap
关于 Hibernate 缓存属性的更多信息,请参考: 第 3.2.2.11 节 “Hibernate Cache 属性”
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部