Description
As discussed with @snicoll on Gitter, it would be nice if Spring Boot could offer an easy way to use the JCache CacheManager
created by Spring Boot with the Hibernate second-level cache.
Hibernate supports different L2 caching options which can be set by e.g. using specific properties like:
spring.jpa.hibernate.cache.region.factory_class=jcache
spring.jpa.hibernate.javax.cache.provider=org.ehcache.jsr107.EhcacheCachingProvider
spring.jpa.hibernate.javax.cache.uri=classpath:ehcache3.xml
However Hibernate also supports explicitly setting the cache manager which can be done via a custom HibernatePropertiesCustomizer
like:
@Configuration
public class HibernateConfig {
@Autowired
private CacheManager cacheManager;
@Bean
public HibernatePropertiesCustomizer hibernatePropertiesCustomizer() {
return hibernateProperties -> hibernateProperties.put(ConfigSettings.CACHE_MANAGER, cacheManager);
}
}
It would be nice if Spring Boot could offer a specific property like spring.jpa.hibernate.use-explicit-cache-manager
, which when set to true
auto configures a HibernatePropertiesCustomizer
which sets the cache manager automatically?
PS: This also relates to PR #14570 adding documentation how set up Hibernate second-level caching currently.