JPA使用MEMCACHED的2级缓存的配置

1.加入hibernate-memcached.jar及相关jar包
hibernate-memcached需要支持的类库如下:
hibernate-memcached-.jar ,
memcached-2.1.jar
spy-2.4.jar
commons-codec 1.3 .
slf4j-1.5.0.jar 如果你的项目使用的是Log4j,可以用 slf4j-log4j12-1.5.0.jar

2.在applicationContext.xml中配置
<bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <property name="jpaVendorAdapter">
            <bean
                class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
                <property name="showSql" value="${jpa.showSql}" />
                <property name="generateDdl" value="${jpa.generateDdl}" />
                <property name="database">
                    <util:constant
                        static-field="org.springframework.orm.jpa.vendor.Database.ORACLE" />
                </property>
            </bean>
        </property>
        <property name="jpaProperties">
            <props>
                <prop key="hibernate.max_fetch_depth">3</prop>
                <prop key="hibernate.cache.use_second_level_cache">
                    true
                </prop>
                <prop key="hibernate.cache.use_structured_entries">
                    true
                </prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <prop key="hibernate.cache.provider_class">
                    com.googlecode.hibernate.memcached.MemcachedCacheProvider
                </prop>
                <prop key="hibernate.memcached.servers">
                    10.1.19.132:33001 10.1.19.132:33002 10.1.19.132:33003
                </prop>
            </props>
        </property>
    </bean>


3.在实体类上配置缓存策略

@org.hibernate.annotations.Cache(usage =CacheConcurrencyStrategy.READ_WRITE) 

下面这几种情况就不适合加载到二级缓存中:
1.经常被修改的数据
2.绝对不允许出现并发访问的数据
3.与其他应用共享的数据
下面这己种情况合适加载到二级缓存中:
1.数据更新频率低
2.允许偶尔出现并发问题的非重要数据
3.不会被并发访问的数据
4.常量数据
5.不会被第三方修改的数据

你可能感兴趣的:(Hibernate,xml,log4j,memcached,jpa)