我们在获取耗时比较长的数据时,一般来都会使用缓存;而ecache在web项目中就很好,其实应该是他很简单易用。
在使用时遇到一个缓存空指针的问题。
之前的代码是这样的
@Cacheable(value="dutyOrgCache",key="#proTypeId")
程序运行时就报错了
Null key returned for cache operation (maybe you are using named params on classes without debug info?)
CacheableOperation[xxx] caches=[dutyOrgCache] | key='#proTypeId' | condition='' | unless=''
大意是说缓存的key为空
因此我做把unless添加上
@Cacheable(value="dutyOrgCache",key="#proTypeId",unless="#proTypeId == null")
但还是不行,我也没找到原因,不过网上unless中放置的大多是#result这种
没办法了,只有使用condition
@Cacheable(value="dutyOrgCache",key="#proTypeId",condition="#proTypeId != null")
这样运行就正常了。
觉得每次加缓存都要把这个key的判空加上有点儿麻烦,应该可以改造一下ecache呀