Я хотел бы использовать Infinispan для кэширования неоднократно вызываемых запросов.
Я следовал этому руководству, чтобы настроить Hibernate для этого:
Использование Infinispan в качестве поставщика кэша второго уровня JPA-Hibernate .
Я следовал каждому шагу, и, хотя в журнале показано, что Infinispan используется в качестве кэша второго уровня и разрешено кэширование запросов, ни один запрос, похоже, не кэшируется.
Я также попробовал этот урок:
Infinispan как Hibernate 2-го уровня кеша в JBoss AS 5.x , также безуспешно.
Вот выдержки из конфигурации, которую я сделал:
(orm.xml)
<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
version="1.0">
<named-query name="retrievePolicySet">
<query>from PSTRepresentationType p where p.realm=? AND p.policySetType.policySetId=?</query>
<hint name="org.hibernate.cacheable" value="true" />
</named-query>
<named-query name="retrievePolicySetList">
<query>from PSTRepresentationType p where p.realm=?</query>
<hint name="org.hibernate.cacheable" value="true" />
</named-query>
</entity-mappings>
(persistence.xml)
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.format_sql" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<!-- Enables the query cache. Individual queries still have to be set cachable. -->
<property name="hibernate.cache.use_query_cache" value="true" />
<property name="hibernate.cache.region.factory_class" value="org.hibernate.cache.infinispan.InfinispanRegionFactory" />
<property name="hibernate.cache.infinispan.statistics" value="true" />
</properties>
Я использую JBoss EAP 5.1 и hibernate-infinispan 3.5.6-Final.