Spring Boot Cacheable除非带有List的结果

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spring Boot Cacheable除非带有List的结果相关的知识,希望对你有一定的参考价值。

我已经读过#result总是引用业务实体,而不是支持的包装器。

这是否意味着以下情况不起作用?

@Cacheable(cacheNames="book", unless="#result?.size() > 0")
public List<Book> findBook(String name)

非常感谢!

答案

这仍然有效。 SpEL documentation显示列表(和数组)由语言标识。因此,本案例中的“商业实体”是“书籍清单”。相反,如果您想在每本书上应用条件,您可以:

@Cacheable(cacheNames="book", unless="#result?.[#this.pages() > 50]") 
public List<Book> findBook(String name)

以上是关于Spring Boot Cacheable除非带有List的结果的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot通过@Cacheable注解实现缓存功能 | Spring Boot 36

Spring Boot - 如何在开发过程中禁用@Cacheable?

@Cacheable使用spring缓存

Spring Boot缓存注解@Cacheable@CacheEvict@CachePut使用

使用带有 @Cacheable 注释的 Spring bean 作为键

Spring Boot Ehcache使用@Cacheable同key不同value是否能被缓存?