概述
调试代码发现encache将空集合给缓存下来了。现在想让encache不将空集合进行缓存
实现
使用@Encache
的unless
方法
示例如下
@Cacheable(value = "cacheName", key = "key", unless = "#result == null || #result.size() == 0")
public List<ResultObjLis> getResultObjList(String key) {
//code
}
总结
unless
方法中使用Spring Expression Language (SpEL) ,当unless
方法结果返回true时,将否决
缓存
由于unless支持SpEL,意味着你可以定制更加丰富的否决策略,比如根据对象的某个属性值来判定是否要保存。如
#rusult.pro == null
#rusult.pro < 10