hibernate - 使用 infinispan 查询缓存

标签 hibernate jboss infinispan

在我的项目中,我使用 Jboss AS 7.1 服务器、hibernate 3.5 和 java 1.7。对于缓存,我使用 infinispan 5.1.5(“Brahma”)。通过以下方式,我在 hibernate 配置 xml 中配置缓存。

<prop key="hibernate.cache.use_second_level_cache">true</prop> <prop key="hibernate.cache.use_query_cache">true</prop> <prop key="hibernate.transaction.manager_lookup_class">org.hibernate.transaction.JBossTransactionManagerLookup</prop> <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.infinispan.InfinispanRegionFactory</prop> <prop key="hibernate.cache.infinispan.statistics">true</prop> <prop key="hibernate.cache.infinispan.cfg">infinispan-config.xml</prop>

和我的 infinispan-config.xml

<default>
     <transaction
            transactionManagerLookupClass="org.infinispan.transaction.lookup.GenericTransactionManagerLookup"
            syncRollbackPhase="false"
            syncCommitPhase="false"
            cacheStopTimeout="30000"
            use1PcForAutoCommitTransactions="false"
            autoCommit="true"
            lockingMode="OPTIMISTIC"
            useSynchronization="false"
            transactionMode="TRANSACTIONAL"
     />
     <invocationBatching enabled="true" />
    <loaders passivation="true" shared="true" preload="true">
        <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="true"
            ignoreModifications="false" purgeOnStartup="false">
            <properties>
                <property name="location" value="/tmp/infinispan"/>
            </properties>
        </loader>
    </loaders> 
</default> 

我的问题:

  1. 如何缓存 java 类中使用的查询?
  2. 对于 hibernate hbm 文件,缓存文件夹是由 infinispan 创建的,但缓存文件没有在相应的文件夹中生成,为什么?

最佳答案

Infinispan 配置到处都是,完全不遵循 default Infinispan configuration for Hibernate 2LC 中的指导方针。 。不需要钝化,只是一个缓存! Hibernate 本身已经是您的后端,如果数据不在缓存中,则可以在其中检索数据。无需调用捕获,也无需在 Infinispan 配置级别配置事务。确保在 Hibernate 级别正确配置事务,并且这些设置将在 Infinispan 中使用。

最后,我使用 Infinispan 创建了一些 Hibernate 2LC 演示 here 。看看它们,您将了解如何进行查询缓存:)

关于hibernate - 使用 infinispan 查询缓存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16976963/

相关文章:

java - 如何更新 hibernate 的每类表层次结构策略中的具体类?

java - 如何从 spring-dispatcher-servlet.xml 访问 SessionFactory 到 DAO

java - 如何从 Rest 客户端将输入参数传递到 Jboss BRMS 规则

java - 在 wildfly-9.0.2.Final 中未找到类型为 'javax.sql.DataSource' 的接口(interface)的 EJB

java - 如何在 infinispan 计算网格中指定节点

Maven + Surefire/Failsafe - forkMode ="perthread"不起作用...解决方法?

hibernate - Play 框架中数据库级别的国际化

java - EclipseLinkJpaVendorAdapter 而不是 HibernateJpaVendorAdapter 问题

java - 使用 ANT 创建带有版本的 WAR 文件

wildfly - 如何修复 Wildfly 中的 "Unable to acquire lock after 15 seconds"错误