Spring: hibernate + ehcache

前端 未结 2 669
小蘑菇
小蘑菇 2021-01-02 07:38

I\'m working with a spring project using hibernate and look to implement second-level cache using ehcache. I see a number of approaches to this:

  1. spring-mod

相关标签:
2条回答
  • 2021-01-02 08:22

    Our project uses option 3. We apply annotation org.hibernate.annotations.Cache to entities that we cache in an Ehcache, configure Ehcache using ehcache.xml, and enable and configure the Hibernate second-level cache in hibernate.cfg.xml:

        <!-- Enable the second-level cache  -->
        <property name="hibernate.cache.provider_class">
            net.sf.ehcache.hibernate.EhCacheProvider
        </property>
        <property name="hibernate.cache.region.factory_class">
            net.sf.ehcache.hibernate.EhCacheRegionFactory
        </property>
        <property name="hibernate.cache.use_query_cache">true</property>
        <property name="hibernate.cache.use_second_level_cache">true</property>
        <property name="hibernate.cache.use_structured_entries">true</property>     
        <property name="hibernate.cache.generate_statistics">true</property>
    

    For most entities, we use cache concurrency strategy CacheConcurrencyStrategy.TRANSACTIONAL:

    @Cache(usage = CacheConcurrencyStrategy.TRANSACTIONAL)
    

    Our Maven project uses Hibernate 3.3.2GA and Ehcache 2.2.0:

        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache-core</artifactId>
            <version>2.2.0</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.3.2.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>3.3.0.ga</version>
            <exclusions>
                <exclusion>
                    <groupId>net.sf.ehcache</groupId>
                    <artifactId>ehcache</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.2.1.ga</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>ejb3-persistence</artifactId>
            <version>3.3.2.Beta1</version>
        </dependency>
    
    0 讨论(0)
  • 2021-01-02 08:22

    Spring 3.1 has a new built-in cache abstraction. Read here.

    0 讨论(0)
提交回复
热议问题