使用infinispan查询缓存

时间:2013-06-07 05:40:40

标签: hibernate jboss infinispan

在我的项目中,我使用的是Jboss AS 7.1服务器,hibernate 3.5和java 1.7。对于缓存我正在使用infinispan 5.1.5(“Brahma”)。通过以下方式我在hibernate config 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创建的,但缓存文件不会在相应的文件夹中生成为什么?

1 个答案:

答案 0 :(得分:4)

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

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