2011-07-21 4 views
3

Je souhaite utiliser Infinispan pour mettre en cache les requêtes appelées à plusieurs reprises.Essayer d'utiliser Infinispan en tant que fournisseur de cache de second niveau JPA/Hibernate, sans succès

J'ai suivi ce tutoriel pour mettre en place Hibernate:

Using Infinispan as JPA-Hibernate Second Level Cache Provider.

J'ai suivi toutes les étapes et, bien que le journal indique qu'Infinispan est utilisé comme cache de second niveau et que la mise en cache des requêtes est activée, aucune requête ne semble être mise en cache.

J'ai également essayé ce tutoriel: Infinispan as Hibernate 2nd-Level Cache in JBoss AS 5.x, également sans succès.

Voici quelques extraits de la configuration que je l'ai fait:

(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> 

J'utilise JBoss EAP 5.1 et hibernate-infinispan 3.5.6-Final.

+2

Avez-vous essayé la voie programmatique de déclarer une requête cacheable? c'est-à-dire query.setCacheable (true) Comment savez-vous que le cache de requêtes ne fonctionne pas? Que vérifiez-vous spécifiquement? –

Répondre

Questions connexes