Spring Data + Hibernate Query Caching not working

后端 未结 1 620
野的像风
野的像风 2021-02-09 05:34

I am trying but not succeeding to cache a query in Spring Data and Hibernate environmet with following dependencies :

相关标签:
1条回答
  • 2021-02-09 05:44

    <cache:annotation-driven /> in jpa-context.xml was missing, adding which fixes the problem . The final jpa-context.xml is

    <?xml version="1.0" encoding="UTF-8"?>
    <beans
        xmlns:p="http://www.springframework.org/schema/p" 
        xmlns="http://www.springframework.org/schema/beans"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xmlns:cache="http://www.springframework.org/schema/cache" 
        xmlns:mvc="http://www.springframework.org/schema/mvc"
        xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd  
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
            http://www.springframework.org/schema/cache
            http://www.springframework.org/schema/cache/spring-cache.xsd"
        default-autowire="byName">
    
        <tx:annotation-driven />
        <cache:annotation-driven />
    
        <bean id="cacheManager" class="org.springframework.cache.support.SimpleCacheManager">
          <property name="caches">
             <set>
              <bean class="org.springframework.cache.concurrent.ConcurrentMapCacheFactoryBean" p:name="merchantServices"/>
            </set>
          </property>
        </bean>
    </beans>
    

    I also added resources/ehcache.xml.

    <?xml version="1.0" encoding="UTF-8"?>
    <ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:noNamespaceSchemaLocation="http://ehcache.org/ehcache.xsd">
    
    <diskStore path="/home/prayag/cache_"/>
    <defaultCache
            eternal="false"
            maxElementsInMemory="1000"
            overflowToDisk="true"
            diskPersistent="true"
            timeToLiveSeconds="300"
            />
    </ehcache>
    

    Which is referenced as <property name="hibernate.cache.provider_configuration_file_resource_path">ehcache.xml</property> in resources/hibernate.cfg.xml.

    My CPU cache conf is

    prayag@prayag:~/hacker_/draobkcalb$ sudo dmidecode -t cache
    [sudo] password for prayag: 
    # dmidecode 2.11
    SMBIOS 2.5 present.
    
    Handle 0x000A, DMI type 7, 19 bytes
    Cache Information
        Socket Designation: Internal Cache
        Configuration: Enabled, Not Socketed, Level 1
        Operational Mode: Write Back
        Location: Internal
        Installed Size: 32 kB
        Maximum Size: 32 kB
        Supported SRAM Types:
            Synchronous
        Installed SRAM Type: Synchronous
        Speed: Unknown
        Error Correction Type: Unknown
        System Type: Unknown
        Associativity: Unknown
    
    Handle 0x000B, DMI type 7, 19 bytes
    Cache Information
        Socket Designation: External Cache
        Configuration: Enabled, Not Socketed, Level 2
        Operational Mode: Write Back
        Location: External
        Installed Size: 2048 kB
        Maximum Size: 2048 kB
        Supported SRAM Types:
            Synchronous
        Installed SRAM Type: Synchronous
        Speed: Unknown
        Error Correction Type: Unknown
        System Type: Unknown
        Associativity: Unknown
    
    0 讨论(0)
提交回复
热议问题