我遇到了@Cacheable的问题,并使用了基于Spring表达式语言的自定义键。我有以下代码
@Cacheable(value = "myCache", key = "#providerDTO.identifier")
ClientVO loadClientVOByProviderDTO(ProviderDTO providerDTO);
这会引发以下错误
org.springframework.expression.spel.SpelEvaluation Exception: EL1007Epos 0): Field or property 'identifier' cannot be found on null
providerDTO参数不为null,我已多次验证。文档说这应该有用,所以我很困惑。文档提供以下示例
@Cacheable(value="books", key="#isbn.rawNumber")
我也试过静态方法。这会抛出NullPointerException,因为这里providerDTO为null。
public static String cacheKey(ProviderDTO providerDTO)
{
return providerDTO.identifier + "-" + providerDTO.clientID + "-" + providerDTO.clubID;
}
如何调试此内容以了解发生了什么?这是Spring 3.2.4-RELEASE。 @Cacheable标签位于一个接口上,但我使用的是标准的弹簧AOP,而不是AspectJ,据我所知,这应该仍能正常工作。
答案 0 :(得分:0)
SpelEvaluationException: EL1007E:(pos 43): Field or property 'group' cannot be found on null和spring @Cacheable with Ehcache, spel find null for valid object可能重复 - 我相信你编译没有调试信息。请检查您的Maven配置;你可能想在这里发布相关的位。在您的POM(或父POM)中搜索maven-compiler-plugin
和一行,例如:
<debug>false</debug>