Я использую Spring Boot 1.2.5 с JPA2 для аннотации сущностей (и спящий режим как подкладка реализации JPA).
Я хотел использовать кеш второго уровня в этой установке, поэтому объекты были аннотированы с помощью @javax.persistence.Cacheable
Я также добавил следующее в application.properties:
spring.jpa.properties.hibernate.cache.use_second_level_cache=true
spring.jpa.properties.hibernate.cache.use_query_cache=true
spring.jpa.properties.hibernate.cache.region.factory_class=org.hibernate.cache.ehcache.EhCacheRegionFactory
Во время загрузки hibernate жаловался на отсутствие EhCacheRegionFactory
, поэтому я также добавил это в pom:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
</dependency>
Но все же запросы, такие как entityManager.find(Clazz.class, pk)
, запускают запрос БД вместо использования кэшированных данных.
Любая идея, что не хватает?