SpringBoot Cacheable除非带有List的结果

时间:2018-02-28 17:57:13

标签: java spring-boot caching

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

这是否意味着下面的案例不起作用?

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

非常感谢!

1 个答案:

答案 0 :(得分:2)

这仍然有效。 SpEL documentation表示列表(和数组)由语言标识。所以&#34;商业实体&#34;在这种情况下是&#34;书籍清单&#34;。相反,如果您想在每本书上应用条件,您可以这样做:

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