基于springboot版本2.0.x
使用caffeine作为本地应用缓冲时,碰见一个暗坑,caffeine做了10分钟缓冲失效配置(expireAfterWrite(10))
下面是具体数据表查询缓存代码
@Cacheable(cacheNames = MerchantCacheConfig.CACHE_NAME, key = "#merId")
public MerchantDTO selectByMerId(String merId) {
return this.selectByMerIdDB(merId);
}
正常有merId商户数据情况下通过商户编号(merId)查询都没什么问题,突然有一天新增一家商户时怎么都查找不到商户的信息,看日志中出现下面错误
java.util.concurrent.CompletionException: java.lang.ClassCastException: org.springframework.cache.support.NullValue cannot be cast to net.easipay.fg.masterdata.dto.PsMerchantSecurityConfigDTO at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) at java.util.concurrent.CompletableFuture.completeThrowable(CompletableFuture.java:280) at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1592) at java.util.concurrent.CompletableFuture$Asy