gpt4 book ai didi

即使我设置了条件,Spring Cache也不会忽略Null键

转载 作者:行者123 更新时间:2023-12-02 11:45:02 24 4
gpt4 key购买 nike

在我的应用程序中,缓存键可为空,因此我只想在键不为空时将其放入缓存中。

我尝试了很多不同的方法,但看起来Spring Cache总是想要一个非空键。否则会抛出异常:

IllegalArgumentException: Null key returned for cache operation (maybe you are using named params on classes without debug info?) Builder[public com.madme.sharding.model.App com.madme.sharding.service.impl.AppServiceImpl.saveOrUpdateApp(com.madme.sharding.model.App)] caches=[appsCache] | key='#result.uuid' | keyGenerator='' | cacheManager='redisCacheManager' | cacheResolver='' | condition='' | unless='#p0.uuid == null' Ref: 1490185514616_gcfal96

我认为,如果我指定了如下所示的“除非”条件,它应该忽略这个CachePut而不抛出任何异常。

// I've tried #result.uuid and #p0.uuid, same output
@CachePut(value = APPS_CACHE, cacheManager = "redisCacheManager", key = "#result.uuid", unless = "#result.uuid == null")
public App saveOrUpdateApp(App app) {
return appRepository.saveAndFlush(app);
}

有人有什么想法吗?

提前致谢。

最佳答案

'condition="#p0.uuid != null"' 有效...没有意识到黑名单('除非')和白名单('条件')没有同时检查。 “条件”在 key 生成之前应用,而“除非”在 key 生成之后应用。非常感谢@M.Deinum

关于即使我设置了条件,Spring Cache也不会忽略Null键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com