在hibernate中配置共享缓存模式

时间:2015-04-18 07:28:30

标签: hibernate sessionfactory second-level-cache

我正在使用spring-hibernate集成,我有hibernate.cfg.xml,它在xml中有session-factory节点。

在使用jpa的persistense.xml中,我使用了shred-cache-mode进行二级缓存。

我想用hibernate配置文件配置它以使其成为ENABLE_SELECTIVE但似乎不可能。

1 个答案:

答案 0 :(得分:0)

我也不确定,但我也认为ENABLE_SELECTIVE已经是默认值,因为@Cacheable你以某种方式选择性地激活它。

但是,根据Spring Boot + JPA2 + Hibernate - enable second level cache上的答案使用spring boot似乎可以使用application.properties(spring boot的配置文件)来影响缓存模式,其条目如下:

spring.jpa.properties.javax.persistence.sharedCache.mode=ENABLE_SELECTIVE

也许您可以将其传输到XML世界,并在JPA spring配置XML文件中使用这样的属性:

<bean id="myEmf" class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
      <property name="dataSource" ref="dataSource" />
      <property name="packagesToScan" value="com.example.persistence.model" />
      <property name="jpaVendorAdapter">
         <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
      </property>
      <property name="jpaProperties">
         <props>
            <prop key="hibernate.hbm2ddl.auto">create-drop</prop>
            <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
            <prop key="javax.persistence.sharedCache.mode">ENABLE_SELECTIVE</prop>
         </props>
      </property>
</bean>

我没有测试过,但IMO这是正确的方法。