Skip to content

Add support for configuring Hibernate L2 Cache #14586

Open
@marceloverdijk

Description

@marceloverdijk

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions