Sto utilizzando Spring Boot 1.2.5 con JPA2 per annotare le entità (e ibernare come underlaying di implementazione JPA).Spring Boot + JPA2 + Hibernate - abilita la cache di secondo livello
ho voluto usare la cache di secondo livello in quella di impostazione, quindi soggetti sono stati annotati con @javax.persistence.Cacheable
Ho anche aggiunto segue in 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
Durante l'avvio di ibernazione lamentato la mancanza di EhCacheRegionFactory
così ho anche aggiunto che questo pom:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
</dependency>
Ma interroga ancora come entityManager.find(Clazz.class, pk)
sono lanciare la query DB invece di utilizzare i dati memorizzati nella cache.
Qualche idea di cosa manca?
Spero che tu abbia abilitato la gestione della cache, nella tua classe di configurazione usando '@ EnableCaching' o nel file xml usando' '. –
Arpit
Anche se è usato solo per Spring Caching - voglio usare JPA2 Caching (aggiorna domanda per indicare che sto usando '@ javax.persistence.Cacheable') a livello di classe – Daimon