在我的项目中,我使用的是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>
我的问题:
答案 0 :(得分:4)
Infinispan配置到处都是,并没有遵循default Infinispan configuration for Hibernate 2LC中的指南。不需要钝化,它只是一个缓存! Hibernate本身已经是你的后端,如果不在缓存中,可以检索数据。无需调用捕获,也不需要在Infinispan配置级别配置事务。确保在Hibernate级别正确配置事务,这些设置将在Infinispan中使用。
最后,我使用Infinispan here为Hibernate 2LC创建了一些演示。看看它们,您将看到如何进行查询缓存:)