Reputation: 103
i'm getting an error while using java configuration for ehcache with spring boot and spring cache starter Cannot find cache named 'bpConfigs' for Builder[public java.util.List com.xxx.bp.repository.BpConfigRepository.getEligibleConfig()] caches=[bpConfigs] | key='' | keyGenerator='' | cacheManager='' | cacheResolver='' | condition='' | unless='' | sync='false'
my configuration :
@EnableCaching
@Configuration
public class CachingConfig implements CachingConfigurer {
private static final int MAX_ENTRIES = 1000;
private static final int LIVE_IN_SEC = 10 * 60;
@Bean
public net.sf.ehcache.CacheManager ehCacheManager() {
net.sf.ehcache.config.Configuration config = new Configuration();
config.addCache(createBpConfigsCache());
return net.sf.ehcache.CacheManager.newInstance(config);
}
@Bean
@Override
public CacheManager cacheManager() {
return new EhCacheCacheManager(ehCacheManager());
}
@Bean
@Override
public CacheResolver cacheResolver() {
return new SimpleCacheResolver(cacheManager());
}
@Bean
@Override
public KeyGenerator keyGenerator() {
return new SimpleKeyGenerator();
}
@Bean
@Override
public CacheErrorHandler errorHandler() {
return new SimpleCacheErrorHandler();
}
private CacheConfiguration createBpConfigsCache() {
CacheConfiguration cfg = new CacheConfiguration();
cfg.setName("bpConfigs");
cfg.setMemoryStoreEvictionPolicy("LRU");
cfg.setTransactionalMode("OFF");
cfg.setEternal(false);
cfg.setTimeToLiveSeconds(LIVE_IN_SEC);
cfg.setMaxEntriesLocalHeap(MAX_ENTRIES);
return cfg;
}
}
My method :
@Repository
@CacheConfig(cacheNames ="bpConfigs")
public class BphConfigRepository {
@Cacheable
public List<LoyaltyEli> getbPConfig() {
return jdbcTemplate.query("select XXX,YYY from TABLE", new myMapper());
}
}
Upvotes: 2
Views: 6473
Reputation: 103
I just removed the implemented interface CachingConfigurer and it's Okay now.
@EnableCaching
@Configuration("CachingConfig")
public class CachingConfig {
}
Upvotes: -1