Настроить режим общего кэша в спящем режиме

Я использую интеграцию spring-hibernate, и у меня есть hibernate.cfg.xml, у которого есть узел session-factory в xml.

В файле persistense.xml с jpa я использовал режим shred-cache для кэширования второго уровня.

Я хочу настроить то же самое с файлом конфигурации спящего режима, чтобы сделать его ENABLE_SELECTIVE, но это не представляется возможным.


person Nimesh    schedule 18.04.2015    source источник
comment
Насколько я помню, при использовании чистого Hibernate поведение по умолчанию заключается в кэшировании только тех сущностей/коллекций с @Cacheable в них. Какие именно проблемы у вас возникают?   -  person Galder Zamarreño    schedule 27.04.2015
comment
Я искал, что хочу включить кеш выборочно. Можно ли настроить другие режимы из файла конфигурации гибернации?   -  person Nimesh    schedule 27.04.2015
comment
Насколько я знаю, повторюсь, я думаю, что Hibernate уже выборочно включает кеши из коробки при запуске Hibernate native. Я не знаю других опций в hibernate.cfg.xml.   -  person Galder Zamarreño    schedule 27.04.2015


Ответы (1)


Я тоже не уверен, но я бы также предположил, что ENABLE_SELECTIVE уже стоит по умолчанию, потому что с @Cacheable вы как-то активируете его выборочно.

Однако, используя весеннюю загрузку в соответствии с ответом на Spring Boot + JPA2 + Hibernate - включить кеш второго уровня кажется, что вы можете влиять на режим кеша, используя application.properties (файл конфигурации весенней загрузки) с такой записью:

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

Возможно, вы можете перенести это в мир XML и использовать подобное свойство в XML-файле конфигурации Spring JPA:

<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>

Я не проверял это, но ИМО это правильный путь.

person mika    schedule 02.01.2016