我正在使用spring-hibernate集成,我有hibernate.cfg.xml,它在xml中有session-factory节点。
在使用jpa的persistense.xml中,我使用了shred-cache-mode进行二级缓存。
我想用hibernate配置文件配置它以使其成为ENABLE_SELECTIVE但似乎不可能。
答案 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这是正确的方法。