使用spring@cacheable和keygenerator和excel属性

nhaq1z21  于 2021-07-14  发布在  Java
关注(0)|答案(2)|浏览(340)

使用spring boot 2.4.3 org.springframework:spring-context:5.3.4
我有一个使用keygenerator的@cacheable方法,它工作得很好。我想使用静态方法添加除非属性,但它不起作用。
注解的示例代码(不调用静态方法

@Cacheable(value = CURRENCY_CHANNELS_CACHE, keyGenerator = CURRENCY_CHANNEL_CACHE_KEY_GENERATOR, unless = "#{ T(com.cache.MyCacheKeyGenerator).isQueryNotCacheable(#p0) }")
public List<Item> getQueryForCollection(final QueryBuilder query, final String sort)
public static boolean com.cache.MyCacheKeyGenerator.isQueryNotCacheable(final QueryBuilder query)

未调用。我得到的错误是找不到它。

rlcwz9us

rlcwz9us1#

您在中使用了错误的spel语法 unless 参数。正确的语法是:

unless = "T(com.cache.MyCacheKeyGenerator).isQueryNotCacheable(#p0)"

我在这里测试了解决方案:https://github.com/ygor-sk/stackoverflow/tree/master/q67168108-cacheable-unless-static
下次,请直接提供问题中的错误。一定很明显:
el1043e:意外令牌。应为'identifier',但为'lcurly({)'

lndjwyie

lndjwyie2#

谢谢您。现在可以了。我没有Spring的痕迹。

相关问题